-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathphantom_submit.js
More file actions
62 lines (54 loc) · 1.52 KB
/
phantom_submit.js
File metadata and controls
62 lines (54 loc) · 1.52 KB
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
var system = require('system');
var args = system.args;
var page = new WebPage(), testindex = 0, loadInProgress = false;
var competition = args[1],
username = args[2],
password = args[3],
submission = args[4];
page.onConsoleMessage = function(msg, lineNum, sourceId) {
console.log(msg);
if (msg == "Unexpected response code: 400") {
loadInProgress = false;
}
};
page.onLoadStarted = function() {
loadInProgress = true;
};
page.onLoadFinished = function() {
loadInProgress = false;
};
var steps = [
function() {
//Load Login Page
page.open("https://www.kaggle.com/c/" + competition + "/submissions/attach");
},
function() {
//Enter Credentials and Login
page.evaluate(function(u, p) {
console.log("Logging in...");
var form = document.getElementById("signin");
form.elements["UserName"].value = u;
form.elements["Password"].value = p;
var form = document.getElementById("signin");
form.submit();
}, username, password);
},
function() {
// Upload submission
page.uploadFile("input[type='file']", submission);
page.evaluate(function() {
var form = document.getElementById("submission-form");
console.log("Uploading submission...");
form.submit();
});
},
];
interval = setInterval(function() {
if (!loadInProgress && typeof steps[testindex] == "function") {
steps[testindex]();
testindex++;
}
if (!loadInProgress && testindex == steps.length) {
setTimeout(function(){phantom.exit();}, 30000);
}
}, 50);