diff --git a/lib/commands/show.js b/lib/commands/show.js index 7c66204a..56b9341e 100644 --- a/lib/commands/show.js +++ b/lib/commands/show.js @@ -152,14 +152,20 @@ function showProblem(problem, argv) { log.printf('* %s', problem.category); log.printf('* %s (%s%%)', h.prettyLevel(problem.level), problem.percent.toFixed(2)); - if (filename) - log.printf('* Source Code: %s', chalk.yellow.underline(filename)); + if (problem.likes) + log.printf('* Likes: %s', problem.likes); + if (problem.dislikes) + log.printf('* Dislikes: %s', problem.dislikes); + else + log.printf('* Dislikes: -'); if (problem.totalAC) log.printf('* Total Accepted: %s', problem.totalAC); if (problem.totalSubmit) log.printf('* Total Submissions: %s', problem.totalSubmit); if (problem.testable && problem.testcase) log.printf('* Testcase Example: %s', chalk.yellow(util.inspect(problem.testcase))); + if (filename) + log.printf('* Source Code: %s', chalk.yellow.underline(filename)); log.info(); log.info(problem.desc); diff --git a/lib/plugins/cache.js b/lib/plugins/cache.js index 90abed93..3c2194e7 100644 --- a/lib/plugins/cache.js +++ b/lib/plugins/cache.js @@ -28,13 +28,20 @@ plugin.getProblem = function(problem, cb) { const k = h.KEYS.problem(problem); const _problem = cache.get(k); if (_problem) { - // Only hit description with html tags (
always exists for presenting testcase)
- if (_problem.desc.includes("")) {
+ // do not hit problem without html tags in desc ( always exists for presenting testcase)
+ if (!_problem.desc.includes("")) {
+ log.debug('cache discarded for being no longer valid: ' + k + '.json');
+ }
+ // do not hit problem without likes & dislikes (logic will be improved in new lib)
+ else if (!['likes', 'dislikes'].every(p => p in _problem)) {
+ log.debug('cache discarded for being too old: ' + k + '.json');
+ }
+ // cache hit
+ else {
log.debug('cache hit: ' + k + '.json');
_.extendOwn(problem, _problem);
return cb(null, problem);
}
- log.debug('cache discarded for being no longer valid: ' + k + '.json');
}
plugin.next.getProblem(problem, function(e, _problem) {
diff --git a/lib/plugins/leetcode.js b/lib/plugins/leetcode.js
index 2e2ede83..1db2e00b 100644
--- a/lib/plugins/leetcode.js
+++ b/lib/plugins/leetcode.js
@@ -134,6 +134,8 @@ plugin.getProblem = function(problem, cb) {
' question(titleSlug: $titleSlug) {',
' content',
' stats',
+ ' likes',
+ ' dislikes',
' codeDefinition',
' sampleTestCase',
' enableRunCode',
@@ -157,6 +159,8 @@ plugin.getProblem = function(problem, cb) {
problem.totalAC = JSON.parse(q.stats).totalAccepted;
problem.totalSubmit = JSON.parse(q.stats).totalSubmission;
+ problem.likes = q.likes;
+ problem.dislikes = q.dislikes;
const content = q.translatedContent ? q.translatedContent : q.content;
// // Replace with '^' as the power operator