Videos nach Chatreihenfolge statt nach Zeitstempel ordnen
WhatsApp stempelt beim Synchronisieren gelegentlich alte Nachrichten neu, im echten Export mehrere Nachrichten am 19.08.26 um 13:17. Die Position im Chat bildet die tatsächliche Reihenfolge verlässlich ab. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
ce84e1103d
commit
6f583c8f5b
2 files changed
+30
-10
No files matched your search
+11
-7
@@ -111,12 +111,16 @@ export function timestampFromFileName(name) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Die Chatreihenfolge ist verlässlicher als die Zeitstempel: WhatsApp stempelt
|
||||
// beim Synchronisieren gelegentlich alte Nachrichten mit einer neuen Zeit.
|
||||
function compareClips(a, b) {
|
||||
return (
|
||||
a.timestamp.localeCompare(b.timestamp) ||
|
||||
a.order - b.order ||
|
||||
a.file.localeCompare(b.file)
|
||||
);
|
||||
return a.order - b.order || a.file.localeCompare(b.file);
|
||||
}
|
||||
|
||||
// Videos ohne Chatzeile werden per Zeitstempel zwischen die Nachrichten einsortiert.
|
||||
function orderForTimestamp(messages, timestamp) {
|
||||
const next = messages.find((message) => message.timestamp > timestamp);
|
||||
return next ? next.index - 0.5 : messages.length;
|
||||
}
|
||||
|
||||
// Doppelt gepostete Videos sind bytegleich; die Dateigröße genügt als Merkmal.
|
||||
@@ -131,7 +135,7 @@ function markDuplicates(clips) {
|
||||
}
|
||||
|
||||
// files: [{ name, size }] aus dem Export (Pfade erlaubt).
|
||||
// Liefert die Videos chronologisch, dazu im Chat genannte, aber fehlende Dateien.
|
||||
// Liefert die Videos in Chatreihenfolge, dazu im Chat genannte, aber fehlende Dateien.
|
||||
export function collectClips(messages, files) {
|
||||
const videos = new Map();
|
||||
for (const file of files) {
|
||||
@@ -176,7 +180,7 @@ export function collectClips(messages, files) {
|
||||
timestamp,
|
||||
sender: null,
|
||||
caption: '',
|
||||
order: Number.MAX_SAFE_INTEGER,
|
||||
order: orderForTimestamp(messages, timestamp),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user