chore: code formatting
This commit is contained in:
@@ -1022,23 +1022,23 @@
|
||||
user: options["leetcode.user"],
|
||||
sections: options["leetcode.sections"].split(",").map(x => x.trim()).filter(x => x),
|
||||
languages: new Array(6).fill(null).map(_ => ({
|
||||
language:faker.hacker.noun(),
|
||||
solved:faker.datatype.number(200)
|
||||
language: faker.hacker.noun(),
|
||||
solved: faker.datatype.number(200),
|
||||
})),
|
||||
skills: new Array(Number(options["leetcode.limit.skills"]) || 10).fill(null).map(_ => ({
|
||||
name:faker.hacker.noun(),
|
||||
category:faker.helpers.arrayElement(["advanced", "intermediate", "fundamental"]),
|
||||
solved:faker.datatype.number(30)
|
||||
name: faker.hacker.noun(),
|
||||
category: faker.helpers.arrayElement(["advanced", "intermediate", "fundamental"]),
|
||||
solved: faker.datatype.number(30),
|
||||
})),
|
||||
problems: {
|
||||
All: { count: 2402, solved: faker.datatype.number(2402) },
|
||||
Easy: { count: 592, solved: faker.datatype.number(592) },
|
||||
Medium: { count: 1283, solved: faker.datatype.number(1283) },
|
||||
Hard: { count: 527, solved: faker.datatype.number(527) }
|
||||
All: {count: 2402, solved: faker.datatype.number(2402)},
|
||||
Easy: {count: 592, solved: faker.datatype.number(592)},
|
||||
Medium: {count: 1283, solved: faker.datatype.number(1283)},
|
||||
Hard: {count: 527, solved: faker.datatype.number(527)},
|
||||
},
|
||||
recent: new Array(Number(options["leetcode.limit.recent"]) || 2).fill(null).map(_ => ({
|
||||
title:faker.lorem.sentence(),
|
||||
date:faker.date.recent(),
|
||||
title: faker.lorem.sentence(),
|
||||
date: faker.date.recent(),
|
||||
})),
|
||||
},
|
||||
})
|
||||
|
||||
@@ -14,7 +14,7 @@ export default async function({login, graphql, rest, data, q, queries, imports,
|
||||
console.debug(`metrics/compute/${login}/base > affiliations constraints ${affiliations}`)
|
||||
|
||||
//Skip initial data gathering if not needed
|
||||
if ((conf.settings.notoken)||(skip)) {
|
||||
if ((conf.settings.notoken) || (skip)) {
|
||||
await callbacks?.plugin?.(login, "base", true, data).catch(error => console.debug(`metrics/compute/${login}/plugins/callbacks > base > ${error}`))
|
||||
return (postprocess.skip({login, data, imports}), {})
|
||||
}
|
||||
|
||||
@@ -7,22 +7,22 @@ export default async function({login, q, imports, data, queries, account}, {enab
|
||||
return null
|
||||
|
||||
//Load inputs
|
||||
let {user, sections, "limit.skills":_limit_skills, "limit.recent":_limit_recent} = imports.metadata.plugins.leetcode.inputs({data, account, q})
|
||||
const result = {user, sections, languages:[], skills:[], problems:{}, recent:[]}
|
||||
let {user, sections, "limit.skills": _limit_skills, "limit.recent": _limit_recent} = imports.metadata.plugins.leetcode.inputs({data, account, q})
|
||||
const result = {user, sections, languages: [], skills: [], problems: {}, recent: []}
|
||||
|
||||
//Languages stats
|
||||
{
|
||||
console.debug(`metrics/compute/${login}/plugins > leetcode > querying api (languages statistics)`)
|
||||
const {data:{data:{matchedUser:{languageProblemCount:languages}}}} = await imports.axios.post("https://leetcode.com/graphql", {variables: {username: user}, query: queries.leetcode.languages()})
|
||||
result.languages = languages.map(({languageName:language, problemsSolved:solved}) => ({language, solved}))
|
||||
const {data: {data: {matchedUser: {languageProblemCount: languages}}}} = await imports.axios.post("https://leetcode.com/graphql", {variables: {username: user}, query: queries.leetcode.languages()})
|
||||
result.languages = languages.map(({languageName: language, problemsSolved: solved}) => ({language, solved}))
|
||||
}
|
||||
|
||||
//Skills stats
|
||||
{
|
||||
console.debug(`metrics/compute/${login}/plugins > leetcode > querying api (skills statistics)`)
|
||||
const {data:{data:{matchedUser:{tagProblemCounts:skills}}}} = await imports.axios.post("https://leetcode.com/graphql", {variables: {username: user}, query: queries.leetcode.skills()})
|
||||
const {data: {data: {matchedUser: {tagProblemCounts: skills}}}} = await imports.axios.post("https://leetcode.com/graphql", {variables: {username: user}, query: queries.leetcode.skills()})
|
||||
for (const category in skills)
|
||||
result.skills.push(...skills[category].map(({tagName:name, problemsSolved:solved}) => ({name, solved, category})))
|
||||
result.skills.push(...skills[category].map(({tagName: name, problemsSolved: solved}) => ({name, solved, category})))
|
||||
result.skills.sort((a, b) => b.solved - a.solved)
|
||||
result.skills = result.skills.slice(0, _limit_skills || Infinity)
|
||||
}
|
||||
@@ -30,18 +30,18 @@ export default async function({login, q, imports, data, queries, account}, {enab
|
||||
//Problems
|
||||
{
|
||||
console.debug(`metrics/compute/${login}/plugins > leetcode > querying api (problems statistics)`)
|
||||
const {data:{data:{allQuestionsCount:all, matchedUser:{submitStatsGlobal:{acSubmissionNum:submissions}}}}} = await imports.axios.post("https://leetcode.com/graphql", {variables: {username: user}, query: queries.leetcode.problems()})
|
||||
const {data: {data: {allQuestionsCount: all, matchedUser: {submitStatsGlobal: {acSubmissionNum: submissions}}}}} = await imports.axios.post("https://leetcode.com/graphql", {variables: {username: user}, query: queries.leetcode.problems()})
|
||||
for (const {difficulty, count} of all)
|
||||
result.problems[difficulty] = {count, solved:0}
|
||||
for (const {difficulty, count:solved} of submissions)
|
||||
result.problems[difficulty] = {count, solved: 0}
|
||||
for (const {difficulty, count: solved} of submissions)
|
||||
result.problems[difficulty].solved = solved
|
||||
}
|
||||
|
||||
//Recent submissions
|
||||
{
|
||||
console.debug(`metrics/compute/${login}/plugins > leetcode > querying api (recent submissions statistics)`)
|
||||
const {data:{data:{recentAcSubmissionList:submissions}}} = await imports.axios.post("https://leetcode.com/graphql", {variables: {username: user, limit:_limit_recent}, query: queries.leetcode.recent()})
|
||||
result.recent = submissions.map(({title, timestamp}) => ({title, date:new Date(timestamp*1000)}))
|
||||
const {data: {data: {recentAcSubmissionList: submissions}}} = await imports.axios.post("https://leetcode.com/graphql", {variables: {username: user, limit: _limit_recent}, query: queries.leetcode.recent()})
|
||||
result.recent = submissions.map(({title, timestamp}) => ({title, date: new Date(timestamp * 1000)}))
|
||||
}
|
||||
|
||||
//Results
|
||||
|
||||
@@ -9,12 +9,12 @@ export default function({faker, url, body, login = faker.internet.userName()}) {
|
||||
status: 200,
|
||||
data: {
|
||||
data: {
|
||||
matchedUser:{
|
||||
languageProblemCount:new Array(6).fill(null).map(_ => ({
|
||||
languageName:faker.hacker.noun(),
|
||||
problemsSolved:faker.datatype.number(200)
|
||||
}))
|
||||
}
|
||||
matchedUser: {
|
||||
languageProblemCount: new Array(6).fill(null).map(_ => ({
|
||||
languageName: faker.hacker.noun(),
|
||||
problemsSolved: faker.datatype.number(200),
|
||||
})),
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -26,25 +26,25 @@ export default function({faker, url, body, login = faker.internet.userName()}) {
|
||||
status: 200,
|
||||
data: {
|
||||
data: {
|
||||
matchedUser:{
|
||||
tagProblemCounts:{
|
||||
advanced:new Array(6).fill(null).map(_ => ({
|
||||
tagName:faker.hacker.noun(),
|
||||
tagSlug:faker.lorem.slug(),
|
||||
problemsSolved:faker.datatype.number(200)
|
||||
matchedUser: {
|
||||
tagProblemCounts: {
|
||||
advanced: new Array(6).fill(null).map(_ => ({
|
||||
tagName: faker.hacker.noun(),
|
||||
tagSlug: faker.lorem.slug(),
|
||||
problemsSolved: faker.datatype.number(200),
|
||||
})),
|
||||
intermediate:new Array(6).fill(null).map(_ => ({
|
||||
tagName:faker.hacker.noun(),
|
||||
tagSlug:faker.lorem.slug(),
|
||||
problemsSolved:faker.datatype.number(200)
|
||||
intermediate: new Array(6).fill(null).map(_ => ({
|
||||
tagName: faker.hacker.noun(),
|
||||
tagSlug: faker.lorem.slug(),
|
||||
problemsSolved: faker.datatype.number(200),
|
||||
})),
|
||||
fundamental:new Array(6).fill(null).map(_ => ({
|
||||
tagName:faker.hacker.noun(),
|
||||
tagSlug:faker.lorem.slug(),
|
||||
problemsSolved:faker.datatype.number(200)
|
||||
}))
|
||||
}
|
||||
}
|
||||
fundamental: new Array(6).fill(null).map(_ => ({
|
||||
tagName: faker.hacker.noun(),
|
||||
tagSlug: faker.lorem.slug(),
|
||||
problemsSolved: faker.datatype.number(200),
|
||||
})),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -56,27 +56,27 @@ export default function({faker, url, body, login = faker.internet.userName()}) {
|
||||
status: 200,
|
||||
data: {
|
||||
data: {
|
||||
allQuestionsCount:[
|
||||
{difficulty:"All", count:2402},
|
||||
{difficulty:"Easy", count:592},
|
||||
{difficulty:"Medium", count:1283},
|
||||
{difficulty:"Hard", count:527},
|
||||
allQuestionsCount: [
|
||||
{difficulty: "All", count: 2402},
|
||||
{difficulty: "Easy", count: 592},
|
||||
{difficulty: "Medium", count: 1283},
|
||||
{difficulty: "Hard", count: 527},
|
||||
],
|
||||
matchedUser:{
|
||||
problemsSolvedBeatsStats:[
|
||||
{difficulty:"Easy", percentage:faker.datatype.float({max:100})},
|
||||
{difficulty:"Medium", percentage:faker.datatype.float({max:100})},
|
||||
{difficulty:"Hard", percentage:faker.datatype.float({max:100})},
|
||||
matchedUser: {
|
||||
problemsSolvedBeatsStats: [
|
||||
{difficulty: "Easy", percentage: faker.datatype.float({max: 100})},
|
||||
{difficulty: "Medium", percentage: faker.datatype.float({max: 100})},
|
||||
{difficulty: "Hard", percentage: faker.datatype.float({max: 100})},
|
||||
],
|
||||
submitStatsGlobal:{
|
||||
acSubmissionNum:[
|
||||
{difficulty:"All", count:faker.datatype.number(2402)},
|
||||
{difficulty:"Easy", count:faker.datatype.number(592)},
|
||||
{difficulty:"Medium", count:faker.datatype.number(1283)},
|
||||
{difficulty:"Hard", count:faker.datatype.number(527)},
|
||||
]
|
||||
}
|
||||
}
|
||||
submitStatsGlobal: {
|
||||
acSubmissionNum: [
|
||||
{difficulty: "All", count: faker.datatype.number(2402)},
|
||||
{difficulty: "Easy", count: faker.datatype.number(592)},
|
||||
{difficulty: "Medium", count: faker.datatype.number(1283)},
|
||||
{difficulty: "Hard", count: faker.datatype.number(527)},
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -88,11 +88,11 @@ export default function({faker, url, body, login = faker.internet.userName()}) {
|
||||
status: 200,
|
||||
data: {
|
||||
data: {
|
||||
recentAcSubmissionList:new Array(6).fill(null).map(_ => ({
|
||||
id:`${faker.datatype.number(10000)}`,
|
||||
title:faker.lorem.sentence(),
|
||||
titleSlug:faker.lorem.slug(),
|
||||
timestamp:`${Math.round(faker.date.recent().getTime()/1000)}`,
|
||||
recentAcSubmissionList: new Array(6).fill(null).map(_ => ({
|
||||
id: `${faker.datatype.number(10000)}`,
|
||||
title: faker.lorem.sentence(),
|
||||
titleSlug: faker.lorem.slug(),
|
||||
timestamp: `${Math.round(faker.date.recent().getTime() / 1000)}`,
|
||||
})),
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user