diff --git a/scripts/test-share-text.ts b/scripts/test-share-text.ts new file mode 100644 index 0000000..ef6709c --- /dev/null +++ b/scripts/test-share-text.ts @@ -0,0 +1,41 @@ +import { fetchRandomVerse } from '../src/lib/server/bible-api'; +import { generateShareText } from '../src/lib/utils/share'; +import { bibleBooks } from '../src/lib/types/bible'; + +const NUM_VERSES = 10; + +for (let i = 0; i < NUM_VERSES; i++) { + const verse = await fetchRandomVerse(); + + // Build a fake "solved in N guesses" scenario with some wrong guesses first + const correctBook = bibleBooks.find((b) => b.id === verse.bookId)!; + const wrongBook = bibleBooks.find((b) => b.id !== verse.bookId)!; + const guessCount = Math.floor(Math.random() * 5) + 1; + const guesses = [ + ...Array(guessCount - 1).fill(null).map(() => ({ + book: wrongBook, + testamentMatch: wrongBook.testament === correctBook.testament, + sectionMatch: wrongBook.section === correctBook.section, + adjacent: Math.abs(wrongBook.order - correctBook.order) === 1, + })), + { book: correctBook, testamentMatch: true, sectionMatch: true, adjacent: false }, + ]; + + const fakeStreak = Math.random() > 0.5 ? Math.floor(Math.random() * 14) + 2 : 0; + + const shareText = generateShareText({ + guesses, + correctBookId: verse.bookId, + dailyVerseDate: new Date().toISOString().slice(0, 10), + chapterCorrect: guessCount === 1 && Math.random() > 0.5, + isLoggedIn: Math.random() > 0.5, + streak: fakeStreak > 0 ? fakeStreak : undefined, + origin: 'https://bibdle.com', + verseText: verse.verseText, + }); + + console.log(`\n── Verse ${i + 1}: ${verse.reference} ──`); + console.log(`RAW: ${verse.verseText}`); + console.log('─'.repeat(40)); + console.log(shareText); +} diff --git a/scripts/test-verse-snippets.ts b/scripts/test-verse-snippets.ts new file mode 100644 index 0000000..eb055b5 --- /dev/null +++ b/scripts/test-verse-snippets.ts @@ -0,0 +1,10 @@ +import { fetchRandomVerse } from '../src/lib/server/bible-api'; +import { getVerseSnippet } from '../src/lib/utils/share'; + +const NUM_VERSES = 10; + +for (let i = 0; i < NUM_VERSES; i++) { + const verse = await fetchRandomVerse(); + + console.log(getVerseSnippet(verse.verseText)); +} diff --git a/src/lib/components/CountdownTimer.svelte b/src/lib/components/CountdownTimer.svelte index 66dbc64..ec79e44 100644 --- a/src/lib/components/CountdownTimer.svelte +++ b/src/lib/components/CountdownTimer.svelte @@ -50,9 +50,9 @@ }); -
+ let { + streak, + streakPercentile = null, + }: { + streak: number; + streakPercentile?: number | null; + } = $props(); + + +
+ {streak} +
+
+ day{streak === 1 ? "" : "s"}
in a row
+
+ Top {streakPercentile}% +
+ {/if} +
- {congratulationsMessage} The verse is from
- {bookName}.
-
- You guessed correctly after {guessCount} - {guessCount === 1 ? "guess" : "guesses"}. -
- - {#if streak > 1} -- 🔥 {streak} days in a row! +
+ {congratulationsMessage} The verse is from
+ {bookName}.
+
+ You guessed correctly after {guessCount} + {guessCount === 1 ? "guess" : "guesses"}. +
+ {#if streak >= 7} ++ Thank you for making Bibdle part of your daily routine!
- {#if streak >= 7} -- Thank you for making Bibdle part of your daily routine! -
- {/if} - {#if streakPercentile !== null} -- {streakPercentile <= 50 - ? "Only " - : ""}{streakPercentile}% of players have a streak of {streak} - or greater. -
- {/if} -