Skip to content

Commit a86844c

Browse files
committed
feat: add create:ramdom script
1 parent 8f704e9 commit a86844c

File tree

4 files changed

+37
-8
lines changed

4 files changed

+37
-8
lines changed

Diff for: README.md

+3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ npm install
1313
# create a solution file: npm run create $leetcodeProblemUrl
1414
npm run create https://leetcode.com/problems/two-sum
1515

16+
# or create a solution for random LeetCode problem
17+
npm run create:random
18+
1619
# build
1720
npm run build
1821
```

Diff for: create/index.js

+18-8
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,22 @@ const getName = url => {
9090
return res[1];
9191
}
9292

93-
const axios = require('axios');
94-
const name = getName(process.argv[2]);
95-
const url = `https://leetcode.com/graphql?query=query%20getQuestionDetail($titleSlug:%20String!)%20%7B%0A%20%20question(titleSlug:%20$titleSlug)%20%7B%0A%20%20%20%20questionId%0A%20%20%20%20questionTitle%0A%20%20%20%20content%0A%20%20%20%20difficulty%0A%20%20%20%20stats%0A%20%20%20%20similarQuestions%0A%20%20%20%20topicTags%20%7B%0A%20%20%20%20%20%20name%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A&operationName=getQuestionDetail&variables=%7B%22titleSlug%22:%22${name}%22%7D`;
93+
const queryAndCreate = name => {
94+
const axios = require('axios');
95+
const url = `https://leetcode.com/graphql?query=query%20getQuestionDetail($titleSlug:%20String!)%20%7B%0A%20%20question(titleSlug:%20$titleSlug)%20%7B%0A%20%20%20%20questionId%0A%20%20%20%20questionTitle%0A%20%20%20%20content%0A%20%20%20%20difficulty%0A%20%20%20%20stats%0A%20%20%20%20similarQuestions%0A%20%20%20%20topicTags%20%7B%0A%20%20%20%20%20%20name%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A&operationName=getQuestionDetail&variables=%7B%22titleSlug%22:%22${name}%22%7D`;
96+
97+
axios.get(url).then(res => {
98+
create(res.data.data.question);
99+
}).catch(err => {
100+
console.error(err);
101+
});
102+
}
103+
104+
if (require.main === module) {
105+
queryAndCreate(getName(process.argv[2]));
106+
}
107+
108+
module.exports = {
109+
queryAndCreate,
110+
};
96111

97-
axios.get(url).then(res => {
98-
create(res.data.data.question);
99-
}).catch(err => {
100-
console.error(err);
101-
});

Diff for: create/random.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const axios = require('axios');
2+
const { queryAndCreate } = require('./index');
3+
4+
axios.post('https://leetcode.com/graphql/', {
5+
operationName: "randomQuestion",
6+
query: "\n query randomQuestion($categorySlug: String, $filters: QuestionListFilterInput) {\n randomQuestion(categorySlug: $categorySlug, filters: $filters) {\n titleSlug\n }\n}\n ",
7+
variables: {
8+
categorySlug: "",
9+
filters: {},
10+
},
11+
}).then(res => {
12+
queryAndCreate(res.data.data.randomQuestion.titleSlug);
13+
}).catch(err => {
14+
console.error(err);
15+
});

Diff for: package.json

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
},
99
"scripts": {
1010
"build": "node build/index.js",
11+
"create:random": "node create/random.js",
1112
"create": "node create/index.js"
1213
},
1314
"repository": {

0 commit comments

Comments
 (0)