refactor: update play time property and enhance player settings management

- Changed the play time property from 'play_time' to 'time' in HomeScreen.
- Removed unused player control functions from PlayScreen.
- Added PlayerSettings interface and implemented PlayerSettingsManager for local storage of player settings.
- Refactored PlayRecordManager to merge API records with local player settings.
- Updated authentication logic in authStore to handle optional username parameter in login function.
- Cleaned up and optimized imports across various components.
This commit is contained in:
zimplexing
2025-07-15 15:03:58 +08:00
parent 2bed3a4d00
commit bf99aee5f2
7 changed files with 152 additions and 56 deletions

View File

@@ -27,11 +27,7 @@ interface PlayerState {
introEndTime?: number;
outroStartTime?: number;
setVideoRef: (ref: RefObject<Video>) => void;
loadVideo: (
source: string,
episodeIndex: number,
position?: number
) => Promise<void>;
loadVideo: (source: string, episodeIndex: number, position?: number) => Promise<void>;
playEpisode: (index: number) => void;
togglePlayPause: () => void;
seek: (duration: number) => void;
@@ -86,10 +82,7 @@ const usePlayerStore = create<PlayerState>((set, get) => ({
});
try {
const playRecord = await PlayRecordManager.get(
detail.source,
detail.id.toString()
);
const playRecord = await PlayRecordManager.get(detail.source, detail.id.toString());
set({
isLoading: false,
introEndTime: playRecord?.introEndTime,
@@ -101,7 +94,6 @@ const usePlayerStore = create<PlayerState>((set, get) => ({
}
},
playEpisode: (index) => {
const { episodes, videoRef } = get();
if (index >= 0 && index < episodes.length) {
@@ -209,12 +201,13 @@ const usePlayerStore = create<PlayerState>((set, get) => ({
};
PlayRecordManager.save(detail.source, detail.id.toString(), {
title: detail.title,
poster: detail.poster || "",
cover: detail.poster || "",
index: currentEpisodeIndex,
total_episodes: episodes.length,
play_time: status.positionMillis,
total_time: status.durationMillis || 0,
source_name: detail.source_name,
year: detail.year || "",
...existingRecord,
...updates,
});