( difficulty: string, problemSet: string )
| 4 | import { getProblemListFromLeetCodeAPI } from "~background" |
| 5 | |
| 6 | export async function getAllLeetCodeProblems( |
| 7 | difficulty: string, |
| 8 | problemSet: string |
| 9 | ) { |
| 10 | try { |
| 11 | // Remove lg- or all from string for better logic processing |
| 12 | const leetCodeProblems: APILeetCodeProblem[] = |
| 13 | await getProblemListFromLeetCodeAPI( |
| 14 | difficulty, |
| 15 | problemSet?.slice(3) || "" |
| 16 | ) |
| 17 | let randomIndex = Math.floor(Math.random() * leetCodeProblems.length) |
| 18 | while (leetCodeProblems[randomIndex].paidOnly) { |
| 19 | randomIndex++ |
| 20 | randomIndex = |
| 21 | (leetCodeProblems.length + randomIndex) % leetCodeProblems.length |
| 22 | } |
| 23 | const randomProblem = leetCodeProblems[randomIndex] |
| 24 | // Replace anything that is not a string or whitespace with "" then replace empty spaces with "-" |
| 25 | //Error with some problems with special characters TODO: Fix this ex: nondrecreasing subequence -> non-decreasing-subsequence |
| 26 | const randomProblemURL = |
| 27 | "https://leetcode.com/problems/" + randomProblem.titleSlug + "/" |
| 28 | const randomProblemName = randomProblem.title |
| 29 | // await storage.set("loading", false) |
| 30 | await storage.stopLoading() |
| 31 | return { url: randomProblemURL, name: randomProblemName } |
| 32 | } catch (error) { |
| 33 | console.error(error) |
| 34 | } |
| 35 | } |
| 36 | |
| 37 | export async function getLeetCodeProblemFromProblemSet( |
| 38 | difficulty: string, |
no test coverage detected