整理配置逻辑
							parent
							
								
									b20942d254
								
							
						
					
					
						commit
						e29ca2e79c
					
				| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					export default [
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    id: 'test',
 | 
				
			||||||
 | 
					    name: '测试接口',
 | 
				
			||||||
 | 
					    disabled: false,
 | 
				
			||||||
 | 
					    supportQualitys: {
 | 
				
			||||||
 | 
					      kw: ['128k'],
 | 
				
			||||||
 | 
					      kg: ['128k'],
 | 
				
			||||||
 | 
					      tx: ['128k'],
 | 
				
			||||||
 | 
					      wy: ['128k'],
 | 
				
			||||||
 | 
					      mg: ['128k'],
 | 
				
			||||||
 | 
					      xm: ['128k'],
 | 
				
			||||||
 | 
					      bd: ['128k'],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    id: 'temp',
 | 
				
			||||||
 | 
					    name: '临时接口',
 | 
				
			||||||
 | 
					    disabled: false,
 | 
				
			||||||
 | 
					    supportQualitys: {
 | 
				
			||||||
 | 
					      kw: ['128k'],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,84 @@
 | 
				
			||||||
 | 
					import path from 'path'
 | 
				
			||||||
 | 
					import os from 'os'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const defaultSetting = {
 | 
				
			||||||
 | 
					  version: '1.0.24',
 | 
				
			||||||
 | 
					  player: {
 | 
				
			||||||
 | 
					    togglePlayMethod: 'listLoop',
 | 
				
			||||||
 | 
					    highQuality: false,
 | 
				
			||||||
 | 
					    isShowTaskProgess: true,
 | 
				
			||||||
 | 
					    volume: 1,
 | 
				
			||||||
 | 
					    mediaDeviceId: 'default',
 | 
				
			||||||
 | 
					    isMediaDeviceRemovedStopPlay: false,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  list: {
 | 
				
			||||||
 | 
					    isShowAlbumName: true,
 | 
				
			||||||
 | 
					    isShowSource: true,
 | 
				
			||||||
 | 
					    scroll: {
 | 
				
			||||||
 | 
					      enable: true,
 | 
				
			||||||
 | 
					      locations: {},
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  download: {
 | 
				
			||||||
 | 
					    savePath: path.join(os.homedir(), 'Desktop'),
 | 
				
			||||||
 | 
					    fileName: '歌名 - 歌手',
 | 
				
			||||||
 | 
					    maxDownloadNum: 3,
 | 
				
			||||||
 | 
					    isDownloadLrc: false,
 | 
				
			||||||
 | 
					    isEmbedPic: true,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  leaderboard: {
 | 
				
			||||||
 | 
					    source: 'kw',
 | 
				
			||||||
 | 
					    tabId: 'kwbiaosb',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  songList: {
 | 
				
			||||||
 | 
					    source: 'kg',
 | 
				
			||||||
 | 
					    sortId: '5',
 | 
				
			||||||
 | 
					    tagInfo: {
 | 
				
			||||||
 | 
					      name: '默认',
 | 
				
			||||||
 | 
					      id: null,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  odc: {
 | 
				
			||||||
 | 
					    isAutoClearSearchInput: false,
 | 
				
			||||||
 | 
					    isAutoClearSearchList: false,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  search: {
 | 
				
			||||||
 | 
					    searchSource: 'kw',
 | 
				
			||||||
 | 
					    tempSearchSource: 'kw',
 | 
				
			||||||
 | 
					    isShowHotSearch: false,
 | 
				
			||||||
 | 
					    isShowHistorySearch: false,
 | 
				
			||||||
 | 
					    isFocusSearchBox: false,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  network: {
 | 
				
			||||||
 | 
					    proxy: {
 | 
				
			||||||
 | 
					      enable: false,
 | 
				
			||||||
 | 
					      host: '',
 | 
				
			||||||
 | 
					      port: '',
 | 
				
			||||||
 | 
					      username: '',
 | 
				
			||||||
 | 
					      password: '',
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  tray: {
 | 
				
			||||||
 | 
					    isShow: false,
 | 
				
			||||||
 | 
					    isToTray: false,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  windowSizeId: 2,
 | 
				
			||||||
 | 
					  themeId: 0,
 | 
				
			||||||
 | 
					  langId: 'cns',
 | 
				
			||||||
 | 
					  sourceId: 'kw',
 | 
				
			||||||
 | 
					  apiSource: 'temp',
 | 
				
			||||||
 | 
					  sourceNameType: 'alias',
 | 
				
			||||||
 | 
					  randomAnimate: true,
 | 
				
			||||||
 | 
					  ignoreVersion: null,
 | 
				
			||||||
 | 
					  isAgreePact: false,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const overwriteSetting = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 使用新年皮肤
 | 
				
			||||||
 | 
					if (new Date().getMonth() < 2) defaultSetting.themeId = 9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export { defaultSetting, overwriteSetting }
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,84 @@
 | 
				
			||||||
module.exports = {
 | 
					import path from 'path'
 | 
				
			||||||
  development: {
 | 
					import os from 'os'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const defaultSetting = {
 | 
				
			||||||
 | 
					  version: '1.0.24',
 | 
				
			||||||
 | 
					  player: {
 | 
				
			||||||
 | 
					    togglePlayMethod: 'listLoop',
 | 
				
			||||||
 | 
					    highQuality: false,
 | 
				
			||||||
 | 
					    isShowTaskProgess: true,
 | 
				
			||||||
 | 
					    volume: 1,
 | 
				
			||||||
 | 
					    mediaDeviceId: 'default',
 | 
				
			||||||
 | 
					    isMediaDeviceRemovedStopPlay: false,
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  production: {
 | 
					  list: {
 | 
				
			||||||
 | 
					    isShowAlbumName: true,
 | 
				
			||||||
 | 
					    isShowSource: true,
 | 
				
			||||||
 | 
					    scroll: {
 | 
				
			||||||
 | 
					      enable: true,
 | 
				
			||||||
 | 
					      locations: {},
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
  ajax: {
 | 
					 | 
				
			||||||
    timeout: 15000, // ajax请求超时时间
 | 
					 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  download: {
 | 
				
			||||||
 | 
					    savePath: path.join(os.homedir(), 'Desktop'),
 | 
				
			||||||
 | 
					    fileName: '歌名 - 歌手',
 | 
				
			||||||
 | 
					    maxDownloadNum: 3,
 | 
				
			||||||
 | 
					    isDownloadLrc: false,
 | 
				
			||||||
 | 
					    isEmbedPic: true,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  leaderboard: {
 | 
				
			||||||
 | 
					    source: 'kw',
 | 
				
			||||||
 | 
					    tabId: 'kwbiaosb',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  songList: {
 | 
				
			||||||
 | 
					    source: 'kg',
 | 
				
			||||||
 | 
					    sortId: '5',
 | 
				
			||||||
 | 
					    tagInfo: {
 | 
				
			||||||
 | 
					      name: '默认',
 | 
				
			||||||
 | 
					      id: null,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  odc: {
 | 
				
			||||||
 | 
					    isAutoClearSearchInput: false,
 | 
				
			||||||
 | 
					    isAutoClearSearchList: false,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  search: {
 | 
				
			||||||
 | 
					    searchSource: 'kw',
 | 
				
			||||||
 | 
					    tempSearchSource: 'kw',
 | 
				
			||||||
 | 
					    isShowHotSearch: false,
 | 
				
			||||||
 | 
					    isShowHistorySearch: false,
 | 
				
			||||||
 | 
					    isFocusSearchBox: false,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  network: {
 | 
				
			||||||
 | 
					    proxy: {
 | 
				
			||||||
 | 
					      enable: false,
 | 
				
			||||||
 | 
					      host: '',
 | 
				
			||||||
 | 
					      port: '',
 | 
				
			||||||
 | 
					      username: '',
 | 
				
			||||||
 | 
					      password: '',
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  tray: {
 | 
				
			||||||
 | 
					    isShow: false,
 | 
				
			||||||
 | 
					    isToTray: false,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  windowSizeId: 2,
 | 
				
			||||||
 | 
					  themeId: 0,
 | 
				
			||||||
 | 
					  langId: 'cns',
 | 
				
			||||||
 | 
					  sourceId: 'kw',
 | 
				
			||||||
 | 
					  apiSource: 'temp',
 | 
				
			||||||
 | 
					  sourceNameType: 'alias',
 | 
				
			||||||
 | 
					  randomAnimate: true,
 | 
				
			||||||
 | 
					  ignoreVersion: null,
 | 
				
			||||||
 | 
					  isAgreePact: false,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const overwriteSetting = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 使用新年皮肤
 | 
				
			||||||
 | 
					if (new Date().getMonth() < 2) defaultSetting.themeId = 9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export { defaultSetting, overwriteSetting }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
import fs from 'fs'
 | 
					import fs from 'fs'
 | 
				
			||||||
import { shell, clipboard } from 'electron'
 | 
					import { shell, clipboard } from 'electron'
 | 
				
			||||||
import path from 'path'
 | 
					 | 
				
			||||||
import os from 'os'
 | 
					 | 
				
			||||||
import crypto from 'crypto'
 | 
					import crypto from 'crypto'
 | 
				
			||||||
import { rendererSend, rendererInvoke } from '../../common/ipc'
 | 
					import { rendererSend, rendererInvoke } from '../../common/ipc'
 | 
				
			||||||
 | 
					import { defaultSetting, overwriteSetting } from '../config'
 | 
				
			||||||
 | 
					import apiSource from '../config/api-source'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 获取两个数之间的随机整数,大于等于min,小于max
 | 
					 * 获取两个数之间的随机整数,大于等于min,小于max
 | 
				
			||||||
| 
						 | 
					@ -184,91 +184,13 @@ export const objectDeepMerge = (target, source) => {
 | 
				
			||||||
 * @param {*} setting
 | 
					 * @param {*} setting
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
export const updateSetting = (setting, version) => {
 | 
					export const updateSetting = (setting, version) => {
 | 
				
			||||||
  const defaultVersion = '1.0.24'
 | 
					  const defaultVersion = defaultSetting.version
 | 
				
			||||||
  if (!version) {
 | 
					  if (!version) {
 | 
				
			||||||
    if (setting) {
 | 
					    if (setting) {
 | 
				
			||||||
      version = setting.version
 | 
					      version = setting.version
 | 
				
			||||||
      delete setting.version
 | 
					      delete setting.version
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  const defaultSetting = {
 | 
					 | 
				
			||||||
    player: {
 | 
					 | 
				
			||||||
      togglePlayMethod: 'listLoop',
 | 
					 | 
				
			||||||
      highQuality: false,
 | 
					 | 
				
			||||||
      isShowTaskProgess: true,
 | 
					 | 
				
			||||||
      volume: 1,
 | 
					 | 
				
			||||||
      mediaDeviceId: 'default',
 | 
					 | 
				
			||||||
      isMediaDeviceRemovedStopPlay: false,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    list: {
 | 
					 | 
				
			||||||
      isShowAlbumName: true,
 | 
					 | 
				
			||||||
      isShowSource: true,
 | 
					 | 
				
			||||||
      scroll: {
 | 
					 | 
				
			||||||
        enable: true,
 | 
					 | 
				
			||||||
        locations: {},
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    download: {
 | 
					 | 
				
			||||||
      savePath: path.join(os.homedir(), 'Desktop'),
 | 
					 | 
				
			||||||
      fileName: '歌名 - 歌手',
 | 
					 | 
				
			||||||
      maxDownloadNum: 3,
 | 
					 | 
				
			||||||
      isDownloadLrc: false,
 | 
					 | 
				
			||||||
      isEmbedPic: true,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    leaderboard: {
 | 
					 | 
				
			||||||
      source: 'kw',
 | 
					 | 
				
			||||||
      tabId: 'kwbiaosb',
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    songList: {
 | 
					 | 
				
			||||||
      source: 'kg',
 | 
					 | 
				
			||||||
      sortId: '5',
 | 
					 | 
				
			||||||
      tagInfo: {
 | 
					 | 
				
			||||||
        name: '默认',
 | 
					 | 
				
			||||||
        id: null,
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    odc: {
 | 
					 | 
				
			||||||
      isAutoClearSearchInput: false,
 | 
					 | 
				
			||||||
      isAutoClearSearchList: false,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    search: {
 | 
					 | 
				
			||||||
      searchSource: 'kw',
 | 
					 | 
				
			||||||
      tempSearchSource: 'kw',
 | 
					 | 
				
			||||||
      isShowHotSearch: false,
 | 
					 | 
				
			||||||
      isShowHistorySearch: false,
 | 
					 | 
				
			||||||
      isFocusSearchBox: false,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    network: {
 | 
					 | 
				
			||||||
      proxy: {
 | 
					 | 
				
			||||||
        enable: false,
 | 
					 | 
				
			||||||
        host: '',
 | 
					 | 
				
			||||||
        port: '',
 | 
					 | 
				
			||||||
        username: '',
 | 
					 | 
				
			||||||
        password: '',
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    tray: {
 | 
					 | 
				
			||||||
      isShow: false,
 | 
					 | 
				
			||||||
      isToTray: false,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    windowSizeId: 2,
 | 
					 | 
				
			||||||
    themeId: 0,
 | 
					 | 
				
			||||||
    langId: 'cns',
 | 
					 | 
				
			||||||
    sourceId: 'kw',
 | 
					 | 
				
			||||||
    apiSource: 'temp',
 | 
					 | 
				
			||||||
    sourceNameType: 'alias',
 | 
					 | 
				
			||||||
    randomAnimate: true,
 | 
					 | 
				
			||||||
    ignoreVersion: null,
 | 
					 | 
				
			||||||
    isAgreePact: false,
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // 使用新年皮肤
 | 
					 | 
				
			||||||
  if (new Date().getMonth() < 2) defaultSetting.themeId = 9
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  const overwriteSetting = {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (!setting) {
 | 
					  if (!setting) {
 | 
				
			||||||
    setting = defaultSetting
 | 
					    setting = defaultSetting
 | 
				
			||||||
| 
						 | 
					@ -277,7 +199,11 @@ export const updateSetting = (setting, version) => {
 | 
				
			||||||
    objectDeepMerge(defaultSetting, overwriteSetting)
 | 
					    objectDeepMerge(defaultSetting, overwriteSetting)
 | 
				
			||||||
    setting = defaultSetting
 | 
					    setting = defaultSetting
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  if (setting.apiSource != 'temp') setting.apiSource = 'test' // 强制设置回 test 接口源
 | 
					
 | 
				
			||||||
 | 
					  if (!apiSource.some(api => api.id === setting.apiSource && !api.disabled)) {
 | 
				
			||||||
 | 
					    let api = apiSource.find(api => !api.disabled)
 | 
				
			||||||
 | 
					    if (api) setting.apiSource = api.id
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return { setting, version: defaultVersion }
 | 
					  return { setting, version: defaultVersion }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,75 +1,21 @@
 | 
				
			||||||
import kw_api_temp from './kw/api-temp'
 | 
					import apiSource from '../../config/api-source'
 | 
				
			||||||
import kw_api_test from './kw/api-test'
 | 
					 | 
				
			||||||
import tx_api_test from './tx/api-test'
 | 
					 | 
				
			||||||
import kg_api_test from './kg/api-test'
 | 
					 | 
				
			||||||
import wy_api_test from './wy/api-test'
 | 
					 | 
				
			||||||
import bd_api_test from './bd/api-test'
 | 
					 | 
				
			||||||
import mg_api_test from './mg/api-test'
 | 
					 | 
				
			||||||
import xm_api_test from './xm/api-test'
 | 
					 | 
				
			||||||
// import kw_api_internal from './kw/api-internal'
 | 
					 | 
				
			||||||
// import tx_api_internal from './tx/api-internal'
 | 
					 | 
				
			||||||
// import kg_api_internal from './kg/api-internal'
 | 
					 | 
				
			||||||
// import wy_api_internal from './wy/api-internal'
 | 
					 | 
				
			||||||
// import bd_api_internal from './bd/api-internal'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const apiList = {
 | 
					const apiList = {}
 | 
				
			||||||
  kw_api_test,
 | 
					const supportQuality = {}
 | 
				
			||||||
  tx_api_test,
 | 
					 | 
				
			||||||
  kg_api_test,
 | 
					 | 
				
			||||||
  wy_api_test,
 | 
					 | 
				
			||||||
  bd_api_test,
 | 
					 | 
				
			||||||
  mg_api_test,
 | 
					 | 
				
			||||||
  xm_api_test,
 | 
					 | 
				
			||||||
  // kw_api_internal,
 | 
					 | 
				
			||||||
  // tx_api_internal,
 | 
					 | 
				
			||||||
  // kg_api_internal,
 | 
					 | 
				
			||||||
  // wy_api_internal,
 | 
					 | 
				
			||||||
  // bd_api_internal,
 | 
					 | 
				
			||||||
  kw_api_temp,
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for (const api of apiSource) {
 | 
				
			||||||
const getAPI = source => {
 | 
					  supportQuality[api.id] = api.supportQualitys
 | 
				
			||||||
  switch (window.globalObj.apiSource) {
 | 
					  for (const source of Object.keys(api.supportQualitys)) {
 | 
				
			||||||
    // case 'messoer':
 | 
					    apiList[`${api.id}_api_${source}`] = require(`./${source}/api-${api.id}`).default
 | 
				
			||||||
    //   return apiList[`${source}_api_messoer`]
 | 
					 | 
				
			||||||
    case 'test':
 | 
					 | 
				
			||||||
      return apiList[`${source}_api_test`]
 | 
					 | 
				
			||||||
    case 'temp':
 | 
					 | 
				
			||||||
      return apiList[`${source}_api_temp`]
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const apis = source => {
 | 
					const getAPI = source => apiList[`${window.globalObj.apiSource}_api_${source}`]
 | 
				
			||||||
  switch (source) {
 | 
					
 | 
				
			||||||
    case 'tx':
 | 
					const apis = source => {
 | 
				
			||||||
      return getAPI('tx')
 | 
					  let api = getAPI(source)
 | 
				
			||||||
    case 'kg':
 | 
					  if (api) return api
 | 
				
			||||||
      return getAPI('kg')
 | 
					  throw new Error('Api is not found')
 | 
				
			||||||
    case 'wy':
 | 
					 | 
				
			||||||
      return getAPI('wy')
 | 
					 | 
				
			||||||
    case 'bd':
 | 
					 | 
				
			||||||
      return getAPI('bd')
 | 
					 | 
				
			||||||
    case 'mg':
 | 
					 | 
				
			||||||
      return getAPI('mg')
 | 
					 | 
				
			||||||
    case 'xm':
 | 
					 | 
				
			||||||
      return getAPI('xm')
 | 
					 | 
				
			||||||
    default:
 | 
					 | 
				
			||||||
      return getAPI('kw')
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const supportQuality = {
 | 
					export { apis, supportQuality }
 | 
				
			||||||
  temp: {
 | 
					 | 
				
			||||||
    kw: ['128k'],
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  test: {
 | 
					 | 
				
			||||||
    kw: ['128k'],
 | 
					 | 
				
			||||||
    kg: ['128k'],
 | 
					 | 
				
			||||||
    tx: ['128k'],
 | 
					 | 
				
			||||||
    wy: ['128k'],
 | 
					 | 
				
			||||||
    mg: ['128k'],
 | 
					 | 
				
			||||||
    xm: ['128k'],
 | 
					 | 
				
			||||||
    bd: ['128k'],
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,44 +0,0 @@
 | 
				
			||||||
import { httpFatch } from '../../request'
 | 
					 | 
				
			||||||
import { requestMsg } from '../../message'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const api_internal = {
 | 
					 | 
				
			||||||
  successCode: 2200,
 | 
					 | 
				
			||||||
  // getMusicUrl(songInfo, type) {
 | 
					 | 
				
			||||||
  //   const requestObj = httpFatch(`http://play.taihe.com/data/music/songlink`, {
 | 
					 | 
				
			||||||
  //     method: 'post',
 | 
					 | 
				
			||||||
  //     headers: {
 | 
					 | 
				
			||||||
  //       Origin: 'http://play.taihe.com',
 | 
					 | 
				
			||||||
  //     },
 | 
					 | 
				
			||||||
  //     formData: {
 | 
					 | 
				
			||||||
  //       songIds: songInfo.songmid,
 | 
					 | 
				
			||||||
  //     },
 | 
					 | 
				
			||||||
  //   })
 | 
					 | 
				
			||||||
  //   requestObj.promise = requestObj.promise.then(({ body }) => {
 | 
					 | 
				
			||||||
  //     console.log(body)
 | 
					 | 
				
			||||||
  //     return Promise.reject()
 | 
					 | 
				
			||||||
  //     // if (body.error_code !== this.successCode) return this.getMusicUrl(songInfo, type)
 | 
					 | 
				
			||||||
  //     // return body.code === 200 ? Promise.resolve({ type, url: body.result.bitrate.file_link }) : Promise.reject(new Error(requestMsg.fail))
 | 
					 | 
				
			||||||
  //   })
 | 
					 | 
				
			||||||
  //   return requestObj
 | 
					 | 
				
			||||||
  // },
 | 
					 | 
				
			||||||
  getMusicInfo(songInfo, tryNum = 0) {
 | 
					 | 
				
			||||||
    const requestObj = httpFatch(`http://tingapi.ting.baidu.com/v1/restserver/ting?from=webapp_music&method=baidu.ting.song.baseInfos&song_id=${songInfo.songmid}`)
 | 
					 | 
				
			||||||
    requestObj.promise = requestObj.promise.then(({ body }) => {
 | 
					 | 
				
			||||||
      if (body.error_code !== this.successCode) return tryNum > 5 ? Promise.reject(new Error(requestMsg.fail)) : this.getMusicInfo(songInfo, ++tryNum)
 | 
					 | 
				
			||||||
      return body ? Promise.resolve(body.result.items[0]) : Promise.reject(new Error(requestMsg.fail))
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    return requestObj
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  getPic(songInfo) {
 | 
					 | 
				
			||||||
    const requestObj = this.getMusicInfo(songInfo)
 | 
					 | 
				
			||||||
    requestObj.promise = requestObj.promise.then(info => info.pic_premium)
 | 
					 | 
				
			||||||
    return requestObj
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  getLyric(songInfo) {
 | 
					 | 
				
			||||||
    const requestObj = this.getMusicInfo(songInfo)
 | 
					 | 
				
			||||||
    requestObj.promise.then(info => httpFatch(info.lrclink).promise)
 | 
					 | 
				
			||||||
    return requestObj
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default api_internal
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,41 +0,0 @@
 | 
				
			||||||
import { httpFatch } from '../../request'
 | 
					 | 
				
			||||||
import { requestMsg } from '../../message'
 | 
					 | 
				
			||||||
import { headers, timeout } from '../options'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const api_messoer = {
 | 
					 | 
				
			||||||
  getMusicUrl(songInfo, type) {
 | 
					 | 
				
			||||||
    const requestObj = httpFatch(`https://v1.itooi.cn/kugou/url?id=${songInfo._types[type].hash}&quality=${type.replace(/k$/, '')}&isRedirect=0`, {
 | 
					 | 
				
			||||||
      method: 'get',
 | 
					 | 
				
			||||||
      timeout,
 | 
					 | 
				
			||||||
      headers,
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    requestObj.promise = requestObj.promise.then(({ body }) => {
 | 
					 | 
				
			||||||
      return body.code === 200 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail))
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    return requestObj
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  getPic(songInfo) {
 | 
					 | 
				
			||||||
    const requestObj = httpFatch(`https://v1.itooi.cn/kugou/pic?id=${songInfo.hash}&isRedirect=0`, {
 | 
					 | 
				
			||||||
      method: 'get',
 | 
					 | 
				
			||||||
      timeout,
 | 
					 | 
				
			||||||
      headers,
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    requestObj.promise = requestObj.promise.then(({ body }) => {
 | 
					 | 
				
			||||||
      return body.code === 200 ? Promise.resolve(body.data) : Promise.reject(new Error(requestMsg.fail))
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    return requestObj
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  getLyric(songInfo) {
 | 
					 | 
				
			||||||
    const requestObj = httpFatch(`https://v1.itooi.cn/kugou/lrc?id=${songInfo.hash}&isRedirect=0`, {
 | 
					 | 
				
			||||||
      method: 'get',
 | 
					 | 
				
			||||||
      timeout,
 | 
					 | 
				
			||||||
      headers,
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    requestObj.promise = requestObj.promise.then(({ body }) => {
 | 
					 | 
				
			||||||
      return body ? Promise.resolve(body) : Promise.reject(new Error(requestMsg.fail))
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    return requestObj
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default api_messoer
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,30 +0,0 @@
 | 
				
			||||||
import { httpFatch } from '../../request'
 | 
					 | 
				
			||||||
import { requestMsg } from '../../message'
 | 
					 | 
				
			||||||
import { headers, timeout } from '../options'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const api_messoer = {
 | 
					 | 
				
			||||||
  getMusicUrl(songInfo, type) {
 | 
					 | 
				
			||||||
    const requestObj = httpFatch(`https://v1.itooi.cn/kuwo/url?id=${songInfo.songmid}&quality=${type.replace(/k$/, '')}&isRedirect=0`, {
 | 
					 | 
				
			||||||
      method: 'get',
 | 
					 | 
				
			||||||
      timeout,
 | 
					 | 
				
			||||||
      headers,
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    requestObj.promise = requestObj.promise.then(({ body }) => {
 | 
					 | 
				
			||||||
      return body.code === 200 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail))
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    return requestObj
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  getPic(songInfo) {
 | 
					 | 
				
			||||||
    const requestObj = httpFatch(`https://v1.itooi.cn/kuwo/pic?id=${songInfo.songmid}&isRedirect=0`, {
 | 
					 | 
				
			||||||
      method: 'get',
 | 
					 | 
				
			||||||
      timeout,
 | 
					 | 
				
			||||||
      headers,
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    requestObj.promise = requestObj.promise.then(({ body }) => {
 | 
					 | 
				
			||||||
      return body.code === 200 ? Promise.resolve(body.data) : Promise.reject(new Error(requestMsg.fail))
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    return requestObj
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default api_messoer
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,24 +0,0 @@
 | 
				
			||||||
import { httpFatch } from '../../request'
 | 
					 | 
				
			||||||
import { requestMsg } from '../../message'
 | 
					 | 
				
			||||||
import { headers, timeout } from '../options'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const api_messoer = {
 | 
					 | 
				
			||||||
  getMusicUrl(songInfo, type) {
 | 
					 | 
				
			||||||
    const requestObj = httpFatch(`https://v1.itooi.cn/tencent/url?id=${songInfo.strMediaMid}&quality=${type.replace(/k$/, '')}&isRedirect=0`, {
 | 
					 | 
				
			||||||
      method: 'get',
 | 
					 | 
				
			||||||
      timeout,
 | 
					 | 
				
			||||||
      headers,
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    requestObj.promise = requestObj.promise.then(({ body }) => {
 | 
					 | 
				
			||||||
      return body.code === 200 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail))
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    return requestObj
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  getPic(songInfo) {
 | 
					 | 
				
			||||||
    return {
 | 
					 | 
				
			||||||
      promise: Promise.resolve(`https://y.gtimg.cn/music/photo_new/T002R500x500M000${songInfo.albumId}.jpg`),
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default api_messoer
 | 
					 | 
				
			||||||
| 
						 | 
					@ -230,6 +230,7 @@ import {
 | 
				
			||||||
  setWindowSize,
 | 
					  setWindowSize,
 | 
				
			||||||
} from '../utils'
 | 
					} from '../utils'
 | 
				
			||||||
import { rendererSend } from '../../common/ipc'
 | 
					import { rendererSend } from '../../common/ipc'
 | 
				
			||||||
 | 
					import apiSource from '../config/api-source'
 | 
				
			||||||
import fs from 'fs'
 | 
					import fs from 'fs'
 | 
				
			||||||
import languageList from '@/lang/languages.json'
 | 
					import languageList from '@/lang/languages.json'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -267,18 +268,11 @@ export default {
 | 
				
			||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    apiSources() {
 | 
					    apiSources() {
 | 
				
			||||||
      return [
 | 
					      return apiSource.map(api => ({
 | 
				
			||||||
        {
 | 
					        id: api.id,
 | 
				
			||||||
          id: 'test',
 | 
					        label: this.$t('view.setting.basic_source_' + api.id) || api.name,
 | 
				
			||||||
          label: this.$t('view.setting.basic_source_test'),
 | 
					        disabled: api.disabled,
 | 
				
			||||||
          disabled: false,
 | 
					      }))
 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          id: 'temp',
 | 
					 | 
				
			||||||
          label: this.$t('view.setting.basic_source_temp'),
 | 
					 | 
				
			||||||
          disabled: false,
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    sourceNameTypes() {
 | 
					    sourceNameTypes() {
 | 
				
			||||||
      return [
 | 
					      return [
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue