@@ -91,6 +91,7 @@ async def _get_problem_data(self, problem_slug: str) -> Dict[str, str]:
91
91
query = """
92
92
query getQuestionDetail($titleSlug: String!) {
93
93
question(titleSlug: $titleSlug) {
94
+ freqBar
94
95
questionId
95
96
questionFrontendId
96
97
boundTopicId
@@ -222,6 +223,10 @@ async def tags(self, problem_slug: str) -> List[str]:
222
223
data = await self ._get_problem_data (problem_slug )
223
224
return list (map (lambda x : x .slug , data .topic_tags ))
224
225
226
+ async def freq_bar (self , problem_slug : str ) -> float :
227
+ data = await self ._get_problem_data (problem_slug )
228
+ return data .freq_bar or 0
229
+
225
230
226
231
class LeetcodeNote (genanki .Note ):
227
232
@property
@@ -265,7 +270,7 @@ async def generate_anki_note(
265
270
leetcode_task_title : str ,
266
271
topic : str ,
267
272
) -> LeetcodeNote :
268
- return LeetcodeNote (
273
+ note = LeetcodeNote (
269
274
model = leetcode_model ,
270
275
fields = [
271
276
leetcode_task_handle ,
@@ -286,10 +291,15 @@ async def generate_anki_note(
286
291
* 100
287
292
)
288
293
),
294
+ str (await leetcode_data .freq_bar (leetcode_task_handle )),
289
295
],
290
296
tags = await leetcode_data .tags (leetcode_task_handle ),
297
+ # FIXME: sort field doesn't work doesn't work
298
+ sort_field = str (await leetcode_data .freq_bar (leetcode_task_handle )).zfill (3 ),
291
299
)
292
300
301
+ return note
302
+
293
303
294
304
async def generate (start : int , stop : int ) -> None :
295
305
leetcode_model = genanki .Model (
@@ -308,6 +318,7 @@ async def generate(start: int, stop: int) -> None:
308
318
{"name" : "SubmissionsTotal" },
309
319
{"name" : "SubmissionsAccepted" },
310
320
{"name" : "SumissionAcceptRate" },
321
+ {"name" : "Frequency" },
311
322
# TODO: add hints
312
323
],
313
324
templates = [
@@ -322,6 +333,11 @@ async def generate(start: int, stop: int) -> None:
322
333
({{SumissionAcceptRate}}%)
323
334
<br/>
324
335
<b>Topic:</b> {{Topic}}<br/>
336
+ <b>Frequency:</b>
337
+ <progress value="{{Frequency}}" max="100">
338
+ {{Frequency}}%
339
+ </progress>
340
+ <br/>
325
341
<b>URL:</b>
326
342
<a href='https://leetcode.com/problems/{{Slug}}/'>
327
343
https://leetcode.com/problems/{{Slug}}/
@@ -352,7 +368,7 @@ async def generate(start: int, stop: int) -> None:
352
368
353
369
note_generators : List [Coroutine [Any , Any , LeetcodeNote ]] = []
354
370
355
- for topic , leetcode_task_title , leetcode_task_handle in list (
371
+ for ( topic , leetcode_task_title , leetcode_task_handle ) in list (
356
372
get_leetcode_task_handles ()
357
373
)[start :stop ]:
358
374
note_generators .append (
0 commit comments