From ed3bf52283e9e1bc61625ecb1b14350162cd49ca Mon Sep 17 00:00:00 2001 From: lovegaoshi <106490582+lovegaoshi@users.noreply.github.com> Date: Fri, 24 Nov 2023 06:30:08 -0800 Subject: [PATCH 1/3] Update azusa-player-mobile --- src/azusa-player-mobile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/azusa-player-mobile b/src/azusa-player-mobile index 52b35caa..d7cfb717 160000 --- a/src/azusa-player-mobile +++ b/src/azusa-player-mobile @@ -1 +1 @@ -Subproject commit 52b35caaa287774032abcb4d54b7389f03717c50 +Subproject commit d7cfb71788f79f077bb12e0d363cb217b3863aaf From 48c68852764847104f59a87b142024015cda4ba5 Mon Sep 17 00:00:00 2001 From: lovegaoshi <106490582+lovegaoshi@users.noreply.github.com> Date: Fri, 24 Nov 2023 17:26:37 -0800 Subject: [PATCH 2/3] refactor: use NoxStorage.playersettingdict --- src/azusa-player-mobile | 2 +- .../buttons/PlayerSetttingsButton.tsx | 4 +- .../dialogs/PlayerSettingsDialog.tsx | 17 +++--- src/enums/storage.ts | 0 src/utils/ChromeStorage.ts | 60 +++++++------------ 5 files changed, 34 insertions(+), 49 deletions(-) create mode 100644 src/enums/storage.ts diff --git a/src/azusa-player-mobile b/src/azusa-player-mobile index d7cfb717..c80eddcb 160000 --- a/src/azusa-player-mobile +++ b/src/azusa-player-mobile @@ -1 +1 @@ -Subproject commit d7cfb71788f79f077bb12e0d363cb217b3863aaf +Subproject commit c80eddcbb4854ea040360a7bbbec0e5e8cc33831 diff --git a/src/components/buttons/PlayerSetttingsButton.tsx b/src/components/buttons/PlayerSetttingsButton.tsx index 89da82a4..502c5c7f 100644 --- a/src/components/buttons/PlayerSetttingsButton.tsx +++ b/src/components/buttons/PlayerSetttingsButton.tsx @@ -3,8 +3,8 @@ import Tooltip from '@mui/material/Tooltip'; import IconButton from '@mui/material/IconButton'; import SettingsIcon from '@mui/icons-material/Settings'; +import type { NoxStorage } from '@APM/types/storage'; import { StorageManagerCtx } from '@contexts/StorageManagerContext'; -import { PlayerSettingDict } from '@utils/ChromeStorage'; import SettingsDialog from '../dialogs/PlayerSettingsDialog'; export default function playerSettingsButton({ @@ -24,7 +24,7 @@ export default function playerSettingsButton({ { + onClose={(settings: NoxStorage.PlayerSettingDict) => { if (settings) StorageManager.setPlayerSetting(settings); setOpenSettingsDialog(false); }} diff --git a/src/components/dialogs/PlayerSettingsDialog.tsx b/src/components/dialogs/PlayerSettingsDialog.tsx index fa01b039..85791e74 100644 --- a/src/components/dialogs/PlayerSettingsDialog.tsx +++ b/src/components/dialogs/PlayerSettingsDialog.tsx @@ -21,11 +21,8 @@ import BuildIcon from '@mui/icons-material/Build'; import Link from '@mui/material/Link'; import Typography from '@mui/material/Typography'; -import { - DEFAULT_SETTING, - EXPORT_OPTIONS, - PlayerSettingDict, -} from '@utils/ChromeStorage'; +import type { NoxStorage } from '@APM/types/storage'; +import { DEFAULT_SETTING, EXPORT_OPTIONS } from '@utils/ChromeStorage'; import { SkinKeys, skins, skinPreset } from '@styles/skin'; import TimerButton from '../buttons/TimerButton'; import { @@ -61,7 +58,7 @@ const AddFavIcon = { interface props { onClose: Function; openState: boolean; - settings: PlayerSettingDict; + settings: NoxStorage.PlayerSettingDict; } export default function SettingsDialog({ onClose, @@ -168,14 +165,14 @@ export default function SettingsDialog({ const syncSetttingButtons = () => { switch (settingExportLocation) { - case EXPORT_OPTIONS.dropbox: + case EXPORT_OPTIONS.DROPBOX: return ( {ExportSyncFavButton(AddFavIcon)} {ImportSyncFavButton(AddFavIcon)} ); - case EXPORT_OPTIONS.personal: + case EXPORT_OPTIONS.PERSONAL: return ( {PersonalExportSyncFavButton(AddFavIcon, personalCloudIP)} @@ -204,7 +201,9 @@ export default function SettingsDialog({ label='云同步选择' margin='dense' select - onChange={(e) => setSettingExportLocation(e.target.value)} + onChange={(e) => + setSettingExportLocation(e.target.value as EXPORT_OPTIONS) + } style={{ minWidth: 100 }} > {Object.values(EXPORT_OPTIONS).map((v, i) => { diff --git a/src/enums/storage.ts b/src/enums/storage.ts new file mode 100644 index 00000000..e69de29b diff --git a/src/utils/ChromeStorage.ts b/src/utils/ChromeStorage.ts index 5507e8b5..241bccd5 100644 --- a/src/utils/ChromeStorage.ts +++ b/src/utils/ChromeStorage.ts @@ -1,5 +1,13 @@ import { v4 as uuidv4 } from 'uuid'; +import type { NoxStorage } from '@APM/types/storage'; +import { + DEFAULT_SETTING as DEFAULT_SETTING_BASE, + EXPORT_OPTIONS, +} from '@APM/enums/Storage'; + +export { EXPORT_OPTIONS } from '@APM/enums/Storage'; + // https://space.bilibili.com/5053504/channel/seriesdetail?sid=2664851 export const INITIAL_PLAYLIST = ['5053504', '2664851']; export const MY_FAV_LIST_KEY = 'MyFavList'; @@ -10,31 +18,6 @@ export const PLAYER_SETTINGS = 'PlayerSetting'; export const CURRENT_PLAYING = 'CurrentPlaying'; export const FAVLIST_AUTO_UPDATE_TIMESTAMP = 'favListAutoUpdateTimestamp'; -export const EXPORT_OPTIONS = { - local: '本地', - dropbox: 'Dropbox', - personal: '私有云', -}; - -export interface PlayerSettingDict { - playMode: string; - defaultPlayMode: string; - defaultVolume: number; - autoRSSUpdate: boolean; - skin: string; - parseSongName: boolean; - keepSearchedSongListWhenPlaying: boolean; - settingExportLocation: string; - personalCloudIP: string; - noxVersion: string; - hideCoverInMobile: boolean; - loadPlaylistAsArtist: boolean; - sendBiliHeartbeat: boolean; - noCookieBiliSearch: boolean; - fastBiliSearch: boolean; - [key: string]: any; -} - export interface PlayListDict { songList: Array; info: { title: string; id: string }; @@ -78,7 +61,9 @@ export const dummyFavFavList = () => { return favfavlist; }; -export const DEFAULT_SETTING: PlayerSettingDict = { +export const DEFAULT_SETTING: NoxStorage.PlayerSettingDict = { + ...DEFAULT_SETTING_BASE, + playMode: 'shufflePlay', defaultPlayMode: 'shufflePlay', defaultVolume: 1, @@ -86,7 +71,7 @@ export const DEFAULT_SETTING: PlayerSettingDict = { skin: '诺莺nox', parseSongName: false, keepSearchedSongListWhenPlaying: false, - settingExportLocation: EXPORT_OPTIONS.local, + settingExportLocation: EXPORT_OPTIONS.LOCAL, personalCloudIP: '', noxVersion: chrome.runtime.getManifest().version, hideCoverInMobile: false, @@ -137,16 +122,17 @@ export const clearStorage = async () => { * if setting is not initialized, initialize and return the default one. * @returns playerSetting */ -export const getPlayerSetting = async (): Promise => { - const settings = (await readLocalStorage( - PLAYER_SETTINGS, - )) as PlayerSettingDict; - // console.log(settings) - if (settings === undefined) { - return DEFAULT_SETTING; - } - return settings; -}; +export const getPlayerSetting = + async (): Promise => { + const settings = (await readLocalStorage( + PLAYER_SETTINGS, + )) as NoxStorage.PlayerSettingDict; + // console.log(settings) + if (settings === undefined) { + return DEFAULT_SETTING; + } + return settings; + }; /** * wrapper for getting the current playerSetting's value given a key. From 809f3d39d983b15e9dfcfeddf352fdd88c7a04fe Mon Sep 17 00:00:00 2001 From: lovegaoshi <106490582+lovegaoshi@users.noreply.github.com> Date: Fri, 24 Nov 2023 17:29:11 -0800 Subject: [PATCH 3/3] fix: nightly.yml --- .github/workflows/nightly.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 175d104d..d9898108 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -59,10 +59,10 @@ jobs: run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT - name: get custom react music player - run: git clone https://github.com/lovegaoshi/react-music-player.git ../react-jinke-music-player + run: git clone https://github.com/lovegaoshi/react-music-player.git ../react-music-player - name: build rjmp - run: cd ../react-jinke-music-player && yarn && yarn build + run: cd ../react-music-player && yarn && yarn build - name: Install dependencies run: yarn; git submodule update --init --recursive