This repository was archived by the owner on Apr 11, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +85
-0
lines changed Expand file tree Collapse file tree 3 files changed +85
-0
lines changed Original file line number Diff line number Diff line change 1+ .PHONY : build
2+
3+ build : index.user.js
4+ index.user.js : index.user.ts
5+ tsc --target es2015 $<
Original file line number Diff line number Diff line change 1+ // ==UserScript==
2+ // @name AtCoder dos2unix UserScript
3+ // @namespace https://github.com/kmyk
4+ // @version 1.0
5+ // @description submit code using LF instead of CRLF
6+ // @author Kimiyuki Onaka
7+ // @match *://beta.atcoder.jp/contests/*/submit
8+ // ==/UserScript==
9+ function main ( ) {
10+ const taskScreenName = document . getElementsByName ( "data.TaskScreenName" ) [ 0 ] ;
11+ const languageId = document . getElementsByName ( "data.LanguageId" ) [ 0 ] ;
12+ const sourceCode = document . getElementsByName ( "sourceCode" ) [ 0 ] ;
13+ const csrfToken = document . getElementsByName ( "csrf_token" ) [ 0 ] ;
14+ const submit = document . getElementById ( "submit" ) ;
15+ submit . addEventListener ( "click" , function ( e ) {
16+ e . preventDefault ( ) ;
17+ const data = [ ] ;
18+ for ( const tag of [ taskScreenName , languageId , sourceCode , csrfToken ] ) {
19+ var value = tag . value ;
20+ if ( tag === sourceCode ) {
21+ value = $ ( sourceCode ) . data ( 'editor' ) . getValue ( ) ;
22+ }
23+ data . push ( tag . name + '=' + encodeURIComponent ( value ) ) ;
24+ console . log ( [ tag . name , value ] ) ;
25+ }
26+ const payload = data . join ( '&' ) ;
27+ console . log ( payload ) ;
28+ const xhr = new XMLHttpRequest ( ) ;
29+ xhr . open ( "POST" , location . pathname , false ) ;
30+ xhr . setRequestHeader ( "Content-Type" , "application/x-www-form-urlencoded" ) ;
31+ xhr . send ( payload ) ;
32+ console . log ( xhr ) ;
33+ location . href = xhr . responseURL ;
34+ } ) ;
35+ }
36+ main ( ) ;
Original file line number Diff line number Diff line change 1+ // ==UserScript==
2+ // @name AtCoder dos2unix UserScript
3+ // @namespace https://github.com/kmyk
4+ // @version 1.0
5+ // @description submit code using LF instead of CRLF
6+ // @author Kimiyuki Onaka
7+ // @match *://beta.atcoder.jp/contests/*/submit
8+ // ==/UserScript==
9+
10+ declare const $ : any ;
11+
12+ function main ( ) : void {
13+ const taskScreenName = < HTMLInputElement > document . getElementsByName ( "data.TaskScreenName" ) [ 0 ] ;
14+ const languageId = < HTMLInputElement > document . getElementsByName ( "data.LanguageId" ) [ 0 ] ;
15+ const sourceCode = < HTMLInputElement > document . getElementsByName ( "sourceCode" ) [ 0 ] ;
16+ const csrfToken = < HTMLInputElement > document . getElementsByName ( "csrf_token" ) [ 0 ] ;
17+
18+ const submit = document . getElementById ( "submit" ) ;
19+ submit . addEventListener ( "click" , function ( e ) {
20+ e . preventDefault ( ) ;
21+
22+ const data = [ ] ;
23+ for ( const tag of [ taskScreenName , languageId , sourceCode , csrfToken ] ) {
24+ var value = tag . value ;
25+ if ( tag === sourceCode ) {
26+ value = $ ( sourceCode ) . data ( 'editor' ) . getValue ( ) ;
27+ }
28+ data . push ( tag . name + '=' + encodeURIComponent ( value ) ) ;
29+ console . log ( [ tag . name , value ] ) ;
30+ }
31+ const payload = data . join ( '&' ) ;
32+ console . log ( payload ) ;
33+
34+ const xhr = new XMLHttpRequest ( ) ;
35+ xhr . open ( "POST" , location . pathname , false ) ;
36+ xhr . setRequestHeader ( "Content-Type" , "application/x-www-form-urlencoded" ) ;
37+ xhr . send ( payload ) ;
38+ console . log ( xhr ) ;
39+
40+ location . href = xhr . responseURL ;
41+ } ) ;
42+ }
43+
44+ main ( ) ;
You can’t perform that action at this time.
0 commit comments