A Neovim plugin enabling you to solve LeetCode problems.
| 1 | ---@class lc.Stats |
| 2 | local Stats = {} |
| 3 | |
| 4 | Stats.daily = {} ---@type { streak?: number, today_completed?: boolean } |
| 5 | Stats.progress = {} ---@type table<string, lc.Stats.QuestionCount> |
| 6 | |
| 7 | |
| 8 | local stats_api = require("leetcode.api.statistics") |
| 9 | local log = require("leetcode.logger") |
| 10 | |
| 11 | stats_api.streak(function(res, err) |
| 12 | if err then |
| 13 | return log.err(err) |
| 14 | end |
| 15 | |
| 16 | Stats.daily.streak = res.streakCount |
| 17 | Stats.daily.today_completed = res.todayCompleted |
| 18 | |
| 19 | _Lc_state.menu:draw() |
| 20 | end) |
| 21 | end |
| 22 | |
| 23 | |
| 24 | local stats_api = require("leetcode.api.statistics") |
| 25 | local log = require("leetcode.logger") |
| 26 | |
| 27 | Stats.progress = {} |
| 28 | |
| 29 | -- stats_api.sessions(function(_, err) |
| 30 | -- if err then |
| 31 | -- return log.err(err) |
| 32 | -- end |
| 33 | -- |
| 34 | -- _Lc_state.menu:draw() |
| 35 | -- end) |
| 36 | |
| 37 | stats_api.session_progress(function(res, err) |
| 38 | if err then |
| 39 | return log.err(err) |
| 40 | end |
| 41 | |
| 42 | Stats.progress = {} |
| 43 | |
| 44 | local progress = res |
| 45 | for _, p in ipairs(progress) do |
| 46 | Stats.progress[p.difficulty:lower()] = p |
| 47 | end |
| 48 | |
| 49 | _Lc_state.menu:draw() |
| 50 | end) |
| 51 | end |
| 52 | |
| 53 | |
| 54 | Stats.update_streak() |
| 55 | Stats.update_sessions() |
| 56 | |
| 57 | _Lc_state.menu:draw() |
| 58 | end |
| 59 | |
| 60 | return Stats |