mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-11-04 03:42:26 +00:00
Preserve video metadata in watch history payloads
This commit is contained in:
1 parent
4e42db2667
commit
507f09dff5
6 files changed
+435
-30
No files matched your search
@@ -96,16 +96,47 @@ function normalizeHistoryEntry(raw) {
|
||||
raw?.timestamp,
|
||||
raw?.created_at,
|
||||
pointer?.watchedAt,
|
||||
raw?.metadata?.watchedAt,
|
||||
pointer?.metadata?.watchedAt,
|
||||
);
|
||||
|
||||
const resumeAt = resolveResumeSeconds(raw);
|
||||
const completed = resolveCompleted(raw);
|
||||
const resumeAt = (() => {
|
||||
const fromPointer = Number.isFinite(pointer?.resumeAt)
|
||||
? Math.max(0, Math.floor(pointer.resumeAt))
|
||||
: Number.isFinite(pointer?.metadata?.resumeAt)
|
||||
? Math.max(0, Math.floor(pointer.metadata.resumeAt))
|
||||
: null;
|
||||
if (fromPointer !== null) {
|
||||
return fromPointer;
|
||||
}
|
||||
return resolveResumeSeconds(raw);
|
||||
})();
|
||||
|
||||
const completed =
|
||||
pointer?.completed === true ||
|
||||
pointer?.metadata?.completed === true ||
|
||||
resolveCompleted(raw);
|
||||
|
||||
const pointerVideo =
|
||||
(pointer?.video && isPlainObject(pointer.video) ? pointer.video : null) ||
|
||||
(pointer?.metadata?.video && isPlainObject(pointer.metadata.video)
|
||||
? pointer.metadata.video
|
||||
: null);
|
||||
|
||||
const pointerProfile =
|
||||
(pointer?.profile && isPlainObject(pointer.profile) ? pointer.profile : null) ||
|
||||
(pointer?.metadata?.profile && isPlainObject(pointer.metadata.profile)
|
||||
? pointer.metadata.profile
|
||||
: null);
|
||||
|
||||
return {
|
||||
pointer,
|
||||
pointerKey: key,
|
||||
watchedAt,
|
||||
video: isPlainObject(raw?.video) ? raw.video : null,
|
||||
video:
|
||||
isPlainObject(raw?.video) && raw.video
|
||||
? raw.video
|
||||
: pointerVideo,
|
||||
metadata: {
|
||||
source: "watch-history",
|
||||
pointerKey: key,
|
||||
@@ -113,6 +144,8 @@ function normalizeHistoryEntry(raw) {
|
||||
resumeAt,
|
||||
completed,
|
||||
session: raw?.session === true || pointer.session === true,
|
||||
video: pointerVideo,
|
||||
profile: pointerProfile,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user