mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 11:29:46 +00:00
Fix streak broken logic
This commit is contained in:
parent
abea4f17b3
commit
080c34d13f
1 changed files with 9 additions and 7 deletions
|
|
@ -37,23 +37,25 @@ export async function updateStats({ event, kysely, store, x = 1 }: UpdateStatsOp
|
||||||
/** Update stats for kind 1 event. */
|
/** Update stats for kind 1 event. */
|
||||||
async function handleEvent1(kysely: Kysely<DittoTables>, event: NostrEvent, x: number): Promise<void> {
|
async function handleEvent1(kysely: Kysely<DittoTables>, event: NostrEvent, x: number): Promise<void> {
|
||||||
await updateAuthorStats(kysely, event.pubkey, (prev) => {
|
await updateAuthorStats(kysely, event.pubkey, (prev) => {
|
||||||
|
const now = event.created_at;
|
||||||
|
|
||||||
let start = prev.streak_start;
|
let start = prev.streak_start;
|
||||||
let end = prev.streak_end;
|
let end = prev.streak_end;
|
||||||
|
|
||||||
if (start && end) { // Streak exists.
|
if (start && end) { // Streak exists.
|
||||||
if (event.created_at <= end) {
|
if (now <= end) {
|
||||||
// Streak cannot go backwards in time. Skip it.
|
// Streak cannot go backwards in time. Skip it.
|
||||||
} else if (end - start > 86400) {
|
} else if (now - end > 86400) {
|
||||||
// Streak is broken. Start a new streak.
|
// Streak is broken. Start a new streak.
|
||||||
start = event.created_at;
|
start = now;
|
||||||
end = event.created_at;
|
end = now;
|
||||||
} else {
|
} else {
|
||||||
// Extend the streak.
|
// Extend the streak.
|
||||||
end = event.created_at;
|
end = now;
|
||||||
}
|
}
|
||||||
} else { // New streak.
|
} else { // New streak.
|
||||||
start = event.created_at;
|
start = now;
|
||||||
end = event.created_at;
|
end = now;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue