-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathindex.js
42 lines (38 loc) · 1.35 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import Logger from "./utils/Logger.js";
import readline from 'readline';
import LeetcoderAuthenticator from "./leetcoder/LeetcoderAuthenticator.js";
import {EXITING_LEETCODER, LEETCODER_ASCII_ART, LEETCODER_MODE_QUESTION} from "./utils/constants.js";
import LeetcoderSolver from "./leetcoder/LeetcoderSolver.js";
import {closeBrowser} from "./managers/BrowserManager.js";
import LeetcoderScraper from "./leetcoder/LeetcoderScraper.js";
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
const question = (query) => {
return new Promise((resolve) => rl.question(query, resolve));
};
(async () => {
try {
Logger.success(LEETCODER_ASCII_ART);
Logger.success(LEETCODER_MODE_QUESTION);
const type = await question('Select mode (1, 2 or other): ');
if (type === '1') {
await LeetcoderAuthenticator.loginUser();
await LeetcoderSolver.solve();
} else if (type === '2') {
await LeetcoderAuthenticator.loginUser();
await LeetcoderScraper.scrapeAcceptedSolutions();
} else if (type === '3') {
await LeetcoderAuthenticator.loginUser();
await LeetcoderScraper.scrapeAcceptedSolutionsGlobally();
}
} catch (err) {
Logger.error('Something went wrong!', err);
} finally {
Logger.error(EXITING_LEETCODER);
rl.close();
await closeBrowser();
process.exit();
}
})();