feat: 新的OpenAPI
This commit is contained in:
parent
cb16bd0324
commit
859575aedb
@ -2,6 +2,9 @@ import http from 'node:http'
|
|||||||
import querystring from 'node:querystring'
|
import querystring from 'node:querystring'
|
||||||
import type { Socket } from 'node:net'
|
import type { Socket } from 'node:net'
|
||||||
import { getAddress } from '@common/utils/nodejs'
|
import { getAddress } from '@common/utils/nodejs'
|
||||||
|
import { mainSend } from '@common/mainIpc'
|
||||||
|
import { BrowserWindow } from 'electron'
|
||||||
|
import { PLAYER_EVENT_NAME } from '@common/ipcNames'
|
||||||
|
|
||||||
let status: LX.OpenAPI.Status = {
|
let status: LX.OpenAPI.Status = {
|
||||||
status: false,
|
status: false,
|
||||||
@ -65,6 +68,7 @@ const handleSubscribePlayerStatus = (req: http.IncomingMessage, res: http.Server
|
|||||||
|
|
||||||
const handleStartServer = async(port: number, ip: string) => new Promise<void>((resolve, reject) => {
|
const handleStartServer = async(port: number, ip: string) => new Promise<void>((resolve, reject) => {
|
||||||
playerStatusKeys = Object.keys(global.lx.player_status) as SubscribeKeys[]
|
playerStatusKeys = Object.keys(global.lx.player_status) as SubscribeKeys[]
|
||||||
|
const browserWindow = BrowserWindow.getFocusedWindow() as BrowserWindow;
|
||||||
httpServer = http.createServer((req, res): void => {
|
httpServer = http.createServer((req, res): void => {
|
||||||
const [endUrl, query] = `/${req.url?.split('/').at(-1) ?? ''}`.split('?')
|
const [endUrl, query] = `/${req.url?.split('/').at(-1) ?? ''}`.split('?')
|
||||||
let code
|
let code
|
||||||
@ -117,6 +121,22 @@ const handleStartServer = async(port: number, ip: string) => new Promise<void>((
|
|||||||
// </body>
|
// </body>
|
||||||
// </html>`
|
// </html>`
|
||||||
// break
|
// break
|
||||||
|
case '/play':
|
||||||
|
code = 200
|
||||||
|
res.setHeader('Content-Type', 'text/plain; charset=utf-8')
|
||||||
|
res.setHeader('Access-Control-Allow-Origin', '*')
|
||||||
|
msg = 'OK'
|
||||||
|
mainSend(browserWindow, PLAYER_EVENT_NAME.player_play)
|
||||||
|
break
|
||||||
|
|
||||||
|
case '/pause':
|
||||||
|
code = 200
|
||||||
|
res.setHeader('Content-Type', 'text/plain; charset=utf-8')
|
||||||
|
res.setHeader('Access-Control-Allow-Origin', '*')
|
||||||
|
msg = 'OK'
|
||||||
|
mainSend(browserWindow, PLAYER_EVENT_NAME.player_pause)
|
||||||
|
break
|
||||||
|
|
||||||
case '/lyric':
|
case '/lyric':
|
||||||
code = 200
|
code = 200
|
||||||
res.setHeader('Content-Type', 'text/plain; charset=utf-8')
|
res.setHeader('Content-Type', 'text/plain; charset=utf-8')
|
||||||
|
|||||||
@ -1,2 +1,3 @@
|
|||||||
export * from './action'
|
export * from './action'
|
||||||
export * from './timeoutStop'
|
export * from './timeoutStop'
|
||||||
|
export * from './registerRendererEvents'
|
||||||
|
|||||||
13
src/renderer/core/player/registerRendererEvents.ts
Normal file
13
src/renderer/core/player/registerRendererEvents.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import { pause, play } from '@renderer/core/player/index'
|
||||||
|
import { PLAYER_EVENT_NAME } from '@common/ipcNames'
|
||||||
|
import { rendererOff, rendererOn } from '@common/rendererIpc'
|
||||||
|
|
||||||
|
export const registerPlayerAction = () => {
|
||||||
|
rendererOn(PLAYER_EVENT_NAME.player_play, play)
|
||||||
|
rendererOn(PLAYER_EVENT_NAME.player_pause, pause)
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
rendererOff(PLAYER_EVENT_NAME.player_play, play)
|
||||||
|
rendererOff(PLAYER_EVENT_NAME.player_pause, pause)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -10,6 +10,7 @@ import { onBeforeUnmount } from '@common/utils/vueTools'
|
|||||||
import { appSetting } from '@renderer/store/setting'
|
import { appSetting } from '@renderer/store/setting'
|
||||||
import { playMusicInfo } from '@renderer/store/player/state'
|
import { playMusicInfo } from '@renderer/store/player/state'
|
||||||
import { initDislikeInfo, registerRemoteDislikeAction } from '@renderer/core/dislikeList'
|
import { initDislikeInfo, registerRemoteDislikeAction } from '@renderer/core/dislikeList'
|
||||||
|
import { registerPlayerAction } from '@renderer/core/player/'
|
||||||
|
|
||||||
const initPrevPlayInfo = async() => {
|
const initPrevPlayInfo = async() => {
|
||||||
const info = await getPlayInfo()
|
const info = await getPlayInfo()
|
||||||
@ -34,10 +35,12 @@ export default () => {
|
|||||||
|
|
||||||
let unregister: null | (() => void) = null
|
let unregister: null | (() => void) = null
|
||||||
let unregisterDislikeEvent: null | (() => void) = null
|
let unregisterDislikeEvent: null | (() => void) = null
|
||||||
|
let unregisterPlayerEvent: null | (() => void) = null
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
if (unregister) unregister()
|
if (unregister) unregister()
|
||||||
if (unregisterDislikeEvent) unregisterDislikeEvent()
|
if (unregisterDislikeEvent) unregisterDislikeEvent()
|
||||||
|
if (unregisterPlayerEvent) unregisterPlayerEvent()
|
||||||
})
|
})
|
||||||
|
|
||||||
return async() => {
|
return async() => {
|
||||||
@ -52,6 +55,7 @@ export default () => {
|
|||||||
})
|
})
|
||||||
window.lxData.userLists = await getUserLists() // 获取用户列表
|
window.lxData.userLists = await getUserLists() // 获取用户列表
|
||||||
unregisterDislikeEvent = registerRemoteDislikeAction()
|
unregisterDislikeEvent = registerRemoteDislikeAction()
|
||||||
|
unregisterPlayerEvent = registerPlayerAction() // 注册播放器相关操作
|
||||||
await initDislikeInfo() // 获取不喜欢列表
|
await initDislikeInfo() // 获取不喜欢列表
|
||||||
await initPrevPlayInfo().catch(err => {
|
await initPrevPlayInfo().catch(err => {
|
||||||
log.error(err)
|
log.error(err)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user