atcoder-gui 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cookie-export.d.ts +8 -0
- package/dist/cookie-export.d.ts.map +1 -1
- package/dist/cookie-export.js +42 -0
- package/dist/cookie-export.js.map +1 -1
- package/dist/gen.d.ts +5 -0
- package/dist/gen.d.ts.map +1 -1
- package/dist/gen.js +52 -0
- package/dist/gen.js.map +1 -1
- package/dist/main.d.ts +1 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +30 -3
- package/dist/main.js.map +1 -1
- package/dist/problem.d.ts +11 -0
- package/dist/problem.d.ts.map +1 -0
- package/dist/problem.js +55 -0
- package/dist/problem.js.map +1 -0
- package/dist/types.d.ts +41 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +10 -2
package/dist/cookie-export.d.ts
CHANGED
|
@@ -6,6 +6,10 @@ export declare class CookieExporter {
|
|
|
6
6
|
* Get the oj (online-judge-tools) cookie path by running oj command
|
|
7
7
|
*/
|
|
8
8
|
private static getOjCookiePath;
|
|
9
|
+
/**
|
|
10
|
+
* Get the atcoder-cli session.json path by running acc config-dir command
|
|
11
|
+
*/
|
|
12
|
+
private static getAtCoderCliSessionPath;
|
|
9
13
|
/**
|
|
10
14
|
* Get AtCoder cookies from current browser session
|
|
11
15
|
*/
|
|
@@ -18,6 +22,10 @@ export declare class CookieExporter {
|
|
|
18
22
|
* Export cookies to oj (online-judge-tools) cookie.jar file
|
|
19
23
|
*/
|
|
20
24
|
exportCookiesForOj(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Export cookies to atcoder-cli session.json file
|
|
27
|
+
*/
|
|
28
|
+
exportCookiesForAtCoderCli(): Promise<void>;
|
|
21
29
|
/**
|
|
22
30
|
* Export cookies to oj (online-judge-tools) cookie.jar file
|
|
23
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie-export.d.ts","sourceRoot":"","sources":["../src/cookie-export.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAc9C,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAiB;gBAE3B,cAAc,EAAE,cAAc;IAI1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAiB9B;;OAEG;YACW,iBAAiB;IA8B/B;;OAEG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAKnD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzC;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IActD;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAYjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwC1B;;;OAGG;YACW,eAAe;IAe7B;;OAEG;IACH,MAAM,CAAC,yBAAyB,IAAI,MAAM;CAG3C"}
|
|
1
|
+
{"version":3,"file":"cookie-export.d.ts","sourceRoot":"","sources":["../src/cookie-export.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAc9C,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAiB;gBAE3B,cAAc,EAAE,cAAc;IAI1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAiB9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAUvC;;OAEG;YACW,iBAAiB;IA8B/B;;OAEG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAKnD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzC;;OAEG;IACG,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BjD;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IActD;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAYjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwC1B;;;OAGG;YACW,eAAe;IAe7B;;OAEG;IACH,MAAM,CAAC,yBAAyB,IAAI,MAAM;CAG3C"}
|
package/dist/cookie-export.js
CHANGED
|
@@ -26,6 +26,19 @@ export class CookieExporter {
|
|
|
26
26
|
throw new Error(`Failed to get oj cookie path: ${error instanceof Error ? error.message : String(error)}`);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Get the atcoder-cli session.json path by running acc config-dir command
|
|
31
|
+
*/
|
|
32
|
+
static getAtCoderCliSessionPath() {
|
|
33
|
+
try {
|
|
34
|
+
// Run acc command to get config directory
|
|
35
|
+
const configDir = execSync('acc config-dir', { encoding: 'utf-8', timeout: 5000 }).trim();
|
|
36
|
+
return join(configDir, 'session.json');
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
throw new Error(`Failed to get atcoder-cli config directory: ${error instanceof Error ? error.message : String(error)}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
29
42
|
/**
|
|
30
43
|
* Get AtCoder cookies from current browser session
|
|
31
44
|
*/
|
|
@@ -64,6 +77,35 @@ export class CookieExporter {
|
|
|
64
77
|
await this.exportCookies(CookieExporter.getOjCookiePath());
|
|
65
78
|
console.log('✓ Cookies exported successfully to oj (online-judge-tools)');
|
|
66
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Export cookies to atcoder-cli session.json file
|
|
82
|
+
*/
|
|
83
|
+
async exportCookiesForAtCoderCli() {
|
|
84
|
+
try {
|
|
85
|
+
const atcoderCookies = await this.getAtCoderCookies();
|
|
86
|
+
const sessionPath = CookieExporter.getAtCoderCliSessionPath();
|
|
87
|
+
// Check if session.json file exists
|
|
88
|
+
if (!existsSync(sessionPath)) {
|
|
89
|
+
throw new Error(`Session file does not exist: ${sessionPath}\nPlease ensure atcoder-cli is installed and has been used at least once to create the session.json file.`);
|
|
90
|
+
}
|
|
91
|
+
// Convert cookies to atcoder-cli format (array of "name=value" strings)
|
|
92
|
+
const cookieStrings = atcoderCookies.map(cookie => `${cookie.name}=${cookie.value}`);
|
|
93
|
+
// Create the session.json content
|
|
94
|
+
const sessionContent = {
|
|
95
|
+
cookies: cookieStrings
|
|
96
|
+
};
|
|
97
|
+
// Write to session.json file
|
|
98
|
+
writeFileSync(sessionPath, JSON.stringify(sessionContent, null, '\t'), {
|
|
99
|
+
encoding: 'utf-8',
|
|
100
|
+
mode: 0o600 // Set file permissions (readable/writable by owner only)
|
|
101
|
+
});
|
|
102
|
+
console.log(`✓ Cookies exported successfully to atcoder-cli session.json`);
|
|
103
|
+
console.log(`Session file updated: ${sessionPath}`);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
console.error('Error during atcoder-cli cookie export:', error);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
67
109
|
/**
|
|
68
110
|
* Export cookies to oj (online-judge-tools) cookie.jar file
|
|
69
111
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie-export.js","sourceRoot":"","sources":["../src/cookie-export.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cookie-export.js","sourceRoot":"","sources":["../src/cookie-export.ts"],"names":[],"mappings":"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"}
|
package/dist/gen.d.ts
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
import { BrowserManager } from './browser';
|
|
1
2
|
export declare class GenManager {
|
|
3
|
+
private browserManager;
|
|
4
|
+
constructor(browserManager: BrowserManager);
|
|
2
5
|
/**
|
|
3
6
|
* Check if atcoder-tools is installed
|
|
4
7
|
*/
|
|
5
8
|
isAtCoderToolsInstalled(): boolean;
|
|
9
|
+
isAtCoderCliInstalled(): boolean;
|
|
6
10
|
/**
|
|
7
11
|
* Run atcoder-tools gen command
|
|
8
12
|
*/
|
|
9
13
|
run(args: string[]): void;
|
|
14
|
+
runAtcoderCli(args: string[]): void;
|
|
10
15
|
}
|
|
11
16
|
//# sourceMappingURL=gen.d.ts.map
|
package/dist/gen.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gen.d.ts","sourceRoot":"","sources":["../src/gen.ts"],"names":[],"mappings":"AAEA,qBAAa,UAAU;IACrB;;OAEG;IACH,uBAAuB,IAAI,OAAO;IASlC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"gen.d.ts","sourceRoot":"","sources":["../src/gen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,qBAAa,UAAU;IACrB,OAAO,CAAC,cAAc,CAAiB;gBAE3B,cAAc,EAAE,cAAc;IAI1C;;OAEG;IACH,uBAAuB,IAAI,OAAO;IASlC,qBAAqB,IAAI,OAAO;IAShC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IA6BzB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;CA4BpC"}
|
package/dist/gen.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
1
2
|
import { execSync } from 'child_process';
|
|
2
3
|
export class GenManager {
|
|
4
|
+
browserManager;
|
|
5
|
+
constructor(browserManager) {
|
|
6
|
+
this.browserManager = browserManager;
|
|
7
|
+
}
|
|
3
8
|
/**
|
|
4
9
|
* Check if atcoder-tools is installed
|
|
5
10
|
*/
|
|
@@ -12,6 +17,15 @@ export class GenManager {
|
|
|
12
17
|
return false;
|
|
13
18
|
}
|
|
14
19
|
}
|
|
20
|
+
isAtCoderCliInstalled() {
|
|
21
|
+
try {
|
|
22
|
+
execSync('acc -version', { stdio: 'ignore' });
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
catch (_) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
15
29
|
/**
|
|
16
30
|
* Run atcoder-tools gen command
|
|
17
31
|
*/
|
|
@@ -24,6 +38,44 @@ export class GenManager {
|
|
|
24
38
|
try {
|
|
25
39
|
const command_line = 'atcoder-tools ' + args.join(' ');
|
|
26
40
|
execSync(command_line, { encoding: 'utf-8', stdio: 'inherit' });
|
|
41
|
+
const contest_id = args[1].match(/^[-\w]+$/)?.[0];
|
|
42
|
+
if (contest_id) {
|
|
43
|
+
const url = `https://atcoder.jp/contests/${contest_id}`;
|
|
44
|
+
// avoid 429 error
|
|
45
|
+
setTimeout(() => {
|
|
46
|
+
this.browserManager.openUrl(url);
|
|
47
|
+
}, 250);
|
|
48
|
+
if (fs.existsSync(contest_id)) {
|
|
49
|
+
process.chdir(contest_id);
|
|
50
|
+
console.log(`Current directory: ${process.cwd()}`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (_) {
|
|
55
|
+
;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
runAtcoderCli(args) {
|
|
59
|
+
if (!this.isAtCoderCliInstalled()) {
|
|
60
|
+
console.error('Error: acc command not found.');
|
|
61
|
+
console.error('Please install atcoder-cli and ensure it is in your PATH.');
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const command_line = 'acc ' + args.join(' ');
|
|
66
|
+
execSync(command_line, { encoding: 'utf-8', stdio: 'inherit' });
|
|
67
|
+
const contest_id = args[1].match(/^[-\w]+$/)?.[0];
|
|
68
|
+
if (contest_id) {
|
|
69
|
+
const url = `https://atcoder.jp/contests/${contest_id}`;
|
|
70
|
+
// avoid 429 error
|
|
71
|
+
setTimeout(() => {
|
|
72
|
+
this.browserManager.openUrl(url);
|
|
73
|
+
}, 250);
|
|
74
|
+
if (fs.existsSync(contest_id)) {
|
|
75
|
+
process.chdir(contest_id);
|
|
76
|
+
console.log(`Current directory: ${process.cwd()}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
27
79
|
}
|
|
28
80
|
catch (_) {
|
|
29
81
|
;
|
package/dist/gen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gen.js","sourceRoot":"","sources":["../src/gen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"gen.js","sourceRoot":"","sources":["../src/gen.ts"],"names":[],"mappings":"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"}
|
package/dist/main.d.ts
CHANGED
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAMA,OAAO,EAAiB,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAMA,OAAO,EAAiB,SAAS,EAAE,MAAM,aAAa,CAAC;AAOvD,qBAAa,UAAU;IACrB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,EAAE,CAAmC;;IAW7C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAazC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACH,SAAS,IAAI,SAAS;IAItB;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C1C;;OAEG;YACW,aAAa;IAkJ3B;;OAEG;IACH,OAAO,CAAC,QAAQ;CA+BjB"}
|
package/dist/main.js
CHANGED
|
@@ -7,6 +7,7 @@ import { ConfigManager } from './config.js';
|
|
|
7
7
|
import { SubmitManager } from './submit.js';
|
|
8
8
|
import { CookieExporter } from './cookie-export.js';
|
|
9
9
|
import { GenManager } from './gen.js';
|
|
10
|
+
import { ProblemManager } from './problem.js';
|
|
10
11
|
import { execSync } from 'child_process';
|
|
11
12
|
export class AtCoderGUI {
|
|
12
13
|
browserManager;
|
|
@@ -14,13 +15,15 @@ export class AtCoderGUI {
|
|
|
14
15
|
submitManager;
|
|
15
16
|
cookieExporter;
|
|
16
17
|
genManager;
|
|
18
|
+
problemManager;
|
|
17
19
|
rl = null;
|
|
18
20
|
constructor() {
|
|
19
21
|
this.browserManager = new BrowserManager();
|
|
20
22
|
this.configManager = new ConfigManager();
|
|
21
23
|
this.submitManager = new SubmitManager(this.browserManager);
|
|
22
24
|
this.cookieExporter = new CookieExporter(this.browserManager);
|
|
23
|
-
this.genManager = new GenManager();
|
|
25
|
+
this.genManager = new GenManager(this.browserManager);
|
|
26
|
+
this.problemManager = new ProblemManager(this.browserManager);
|
|
24
27
|
}
|
|
25
28
|
/**
|
|
26
29
|
* Initialize the application
|
|
@@ -103,6 +106,13 @@ export class AtCoderGUI {
|
|
|
103
106
|
async handleCommand(input) {
|
|
104
107
|
const args = input.split(' ').filter(arg => arg.length > 0);
|
|
105
108
|
const command = args[0].toLowerCase();
|
|
109
|
+
if (command == '') {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
// Try to navigate to problem directory if command is a single letter
|
|
113
|
+
if (await this.problemManager.navigateToProblem(command)) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
106
116
|
try {
|
|
107
117
|
switch (command) {
|
|
108
118
|
case 'open':
|
|
@@ -142,6 +152,7 @@ export class AtCoderGUI {
|
|
|
142
152
|
console.log('Usage: export <target>');
|
|
143
153
|
console.log('Available targets:');
|
|
144
154
|
console.log(' atcoder-tools Export cookies to atcoder-tools cookie.txt');
|
|
155
|
+
console.log(' atcoder-cli Export cookies to atcoder-cli session.json');
|
|
145
156
|
console.log(' oj Export cookies to online-judge-tools cookie.jar');
|
|
146
157
|
return;
|
|
147
158
|
}
|
|
@@ -151,19 +162,32 @@ export class AtCoderGUI {
|
|
|
151
162
|
case 'atcoder-tools':
|
|
152
163
|
await this.cookieExporter.exportCookiesForAtCoderTools();
|
|
153
164
|
break;
|
|
165
|
+
case 'atcoder-cli':
|
|
166
|
+
await this.cookieExporter.exportCookiesForAtCoderCli();
|
|
167
|
+
break;
|
|
154
168
|
case 'oj':
|
|
155
169
|
await this.cookieExporter.exportCookiesForOj();
|
|
156
170
|
break;
|
|
157
171
|
default:
|
|
158
172
|
console.log(`Unknown export target: ${target}`);
|
|
159
|
-
console.log('Available targets: atcoder-tools, oj');
|
|
173
|
+
console.log('Available targets: atcoder-tools, atcoder-cli, oj');
|
|
160
174
|
}
|
|
161
175
|
}
|
|
162
176
|
break;
|
|
163
177
|
case 'gen':
|
|
164
178
|
this.genManager.run(args);
|
|
165
179
|
break;
|
|
180
|
+
case 'new':
|
|
181
|
+
this.genManager.runAtcoderCli(args);
|
|
182
|
+
break;
|
|
183
|
+
case 'cp':
|
|
184
|
+
case 'copy':
|
|
185
|
+
case 'del':
|
|
186
|
+
case 'dir':
|
|
187
|
+
case 'ls':
|
|
166
188
|
case 'make':
|
|
189
|
+
case 'pwd':
|
|
190
|
+
case 'rm':
|
|
167
191
|
{
|
|
168
192
|
const command_line = args.join(' ');
|
|
169
193
|
try {
|
|
@@ -225,7 +249,8 @@ Available commands:
|
|
|
225
249
|
open <URL> Open a URL in the browser
|
|
226
250
|
config Show current configuration
|
|
227
251
|
submit Submit solution to AtCoder (requires metadata.json and main.cpp)
|
|
228
|
-
gen <
|
|
252
|
+
gen <contest-id> Generate sample cases using atcoder-tools
|
|
253
|
+
new <contest-id> Generate sample cases using atcoder-cli
|
|
229
254
|
make <args> Execute make command
|
|
230
255
|
test Execute test command
|
|
231
256
|
export <target> Export data to external tools
|
|
@@ -236,6 +261,7 @@ Available commands:
|
|
|
236
261
|
|
|
237
262
|
Export targets:
|
|
238
263
|
atcoder-tools Export browser cookies to atcoder-tools cookie.txt
|
|
264
|
+
atcoder-cli Export browser cookies to atcoder-cli session.json
|
|
239
265
|
oj Export browser cookies to online-judge-tools cookie.jar
|
|
240
266
|
|
|
241
267
|
Examples:
|
|
@@ -244,6 +270,7 @@ Examples:
|
|
|
244
270
|
submit (run from atcoder-tools directory)
|
|
245
271
|
gen https://atcoder.jp/contests/abc123/tasks/abc123_a
|
|
246
272
|
export atcoder-tools (export REVEL_FLASH and REVEL_SESSION cookies)
|
|
273
|
+
export atcoder-cli (export cookies to atcoder-cli session.json)
|
|
247
274
|
export oj (export cookies to online-judge-tools)
|
|
248
275
|
`);
|
|
249
276
|
}
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAa,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,UAAU;IACb,cAAc,CAAiB;IAC/B,aAAa,CAAgB;IAC7B,aAAa,CAAgB;IAC7B,cAAc,CAAiB;IAC/B,UAAU,CAAa;IACvB,EAAE,GAA8B,IAAI,CAAC;IAE7C;QACE,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BrowserManager } from './browser.js';
|
|
2
|
+
export declare class ProblemManager {
|
|
3
|
+
private browserManager;
|
|
4
|
+
constructor(browserManager: BrowserManager);
|
|
5
|
+
/**
|
|
6
|
+
* Navigate to problem directory and open problem page if valid
|
|
7
|
+
* Returns true if successful navigation occurred
|
|
8
|
+
*/
|
|
9
|
+
navigateToProblem(command: string): Promise<boolean>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=problem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"problem.d.ts","sourceRoot":"","sources":["../src/problem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAiB;gBAE3B,cAAc,EAAE,cAAc;IAI1C;;;OAGG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CA2C3D"}
|
package/dist/problem.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
export class ProblemManager {
|
|
4
|
+
browserManager;
|
|
5
|
+
constructor(browserManager) {
|
|
6
|
+
this.browserManager = browserManager;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Navigate to problem directory and open problem page if valid
|
|
10
|
+
* Returns true if successful navigation occurred
|
|
11
|
+
*/
|
|
12
|
+
async navigateToProblem(command) {
|
|
13
|
+
// Only handle single alphabetic characters
|
|
14
|
+
if (command.length !== 1 || !/^[a-zA-Z]$/.test(command)) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
// Look for problem directory in current directory and parent directory
|
|
18
|
+
for (const searchPath of ['.', '..']) {
|
|
19
|
+
for (const problem_id of [command.toLowerCase(), command.toUpperCase()]) {
|
|
20
|
+
const problem_dir = path.join(searchPath, problem_id);
|
|
21
|
+
if (fs.existsSync(problem_dir)) {
|
|
22
|
+
// atcoder-tools
|
|
23
|
+
{
|
|
24
|
+
const metadataFilename = path.join(problem_dir, 'metadata.json');
|
|
25
|
+
if (fs.existsSync(metadataFilename)) {
|
|
26
|
+
const metadata = JSON.parse(fs.readFileSync(metadataFilename, 'utf-8'));
|
|
27
|
+
const problem = metadata.problem;
|
|
28
|
+
process.chdir(problem_dir);
|
|
29
|
+
console.log(`Current directory: ${process.cwd()}`);
|
|
30
|
+
this.browserManager.openUrl(`https://atcoder.jp/contests/${problem.contest.contest_id}/tasks/${problem.problem_id}`);
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// atcoder-cli
|
|
35
|
+
{
|
|
36
|
+
const metadataFilename = path.join(searchPath, 'contest.acc.json');
|
|
37
|
+
if (fs.existsSync(metadataFilename)) {
|
|
38
|
+
const metadata = JSON.parse(fs.readFileSync(metadataFilename, 'utf-8'));
|
|
39
|
+
for (const task of metadata.tasks) {
|
|
40
|
+
if (task.directory?.path == problem_id) {
|
|
41
|
+
process.chdir(problem_dir);
|
|
42
|
+
console.log(`Current directory: ${process.cwd()}`);
|
|
43
|
+
this.browserManager.openUrl(task.url);
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=problem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"problem.js","sourceRoot":"","sources":["../src/problem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B,MAAM,OAAO,cAAc;IACjB,cAAc,CAAiB;IAEvC,YAAY,cAA8B;QACxC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAe;QACrC,2CAA2C;QAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,uEAAuE;QACvE,KAAK,MAAM,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YACrC,KAAK,MAAM,UAAU,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACxE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBACtD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/B,gBAAgB;oBAChB,CAAC;wBACC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;wBACjE,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;4BACpC,MAAM,QAAQ,GAAyB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;4BAC9F,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;4BACjC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;4BAC3B,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;4BACnD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,+BAA+B,OAAO,CAAC,OAAO,CAAC,UAAU,UAAU,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;4BACrH,OAAO,IAAI,CAAC;wBACd,CAAC;oBACH,CAAC;oBACD,cAAc;oBACd,CAAC;wBACC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;wBACnE,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;4BACpC,MAAM,QAAQ,GAA4B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;4BACjG,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gCAClC,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,UAAU,EAAE,CAAC;oCACvC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oCAC3B,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oCACnD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oCACtC,OAAO,IAAI,CAAC;gCACd,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for atcoder-cli and atcoder-tools configuration files
|
|
3
|
+
*/
|
|
4
|
+
export interface AtCoderCliContestConfig {
|
|
5
|
+
contest: {
|
|
6
|
+
id: string;
|
|
7
|
+
title: string;
|
|
8
|
+
url: string;
|
|
9
|
+
};
|
|
10
|
+
tasks: AtCoderCliTask[];
|
|
11
|
+
}
|
|
12
|
+
export interface AtCoderCliTask {
|
|
13
|
+
id: string;
|
|
14
|
+
label: string;
|
|
15
|
+
title: string;
|
|
16
|
+
url: string;
|
|
17
|
+
directory?: {
|
|
18
|
+
path: string;
|
|
19
|
+
testdir: string;
|
|
20
|
+
submit: string;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export interface AtCoderToolsMetadata {
|
|
24
|
+
code_filename: string;
|
|
25
|
+
judge: {
|
|
26
|
+
judge_type: string;
|
|
27
|
+
};
|
|
28
|
+
lang: string;
|
|
29
|
+
problem: {
|
|
30
|
+
alphabet: string;
|
|
31
|
+
contest: {
|
|
32
|
+
contest_id: string;
|
|
33
|
+
};
|
|
34
|
+
problem_id: string;
|
|
35
|
+
url?: string;
|
|
36
|
+
};
|
|
37
|
+
sample_in_pattern: string;
|
|
38
|
+
sample_out_pattern: string;
|
|
39
|
+
timeout_ms: number;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAGD,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE;YACP,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;QACF,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "atcoder-gui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "Browser automation tool for AtCoder with CLI interface",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/main.js",
|
|
@@ -32,7 +32,14 @@
|
|
|
32
32
|
"type": "git",
|
|
33
33
|
"url": "git+https://github.com/firewood/atcoder-gui.git"
|
|
34
34
|
},
|
|
35
|
-
"keywords": [
|
|
35
|
+
"keywords": [
|
|
36
|
+
"atcoder",
|
|
37
|
+
"browser-automation",
|
|
38
|
+
"cli",
|
|
39
|
+
"competitive-programming",
|
|
40
|
+
"playwright",
|
|
41
|
+
"typescript"
|
|
42
|
+
],
|
|
36
43
|
"author": "firewood <174658+firewood@users.noreply.github.com>",
|
|
37
44
|
"license": "MIT",
|
|
38
45
|
"bugs": {
|
|
@@ -41,6 +48,7 @@
|
|
|
41
48
|
"homepage": "https://github.com/firewood/atcoder-gui#readme",
|
|
42
49
|
"dependencies": {
|
|
43
50
|
"conf": "^15.0.2",
|
|
51
|
+
"globals": "^16.5.0",
|
|
44
52
|
"json5": "^2.2.3",
|
|
45
53
|
"playwright": "^1.56.1"
|
|
46
54
|
},
|