-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathmain.js
136 lines (111 loc) · 3.55 KB
/
main.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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
const CLIENT_ID = 'abe7gtyxbr7wfcdftwyi9i5kej3jnq';
const TYPE_USERNAME = 'Username';
const TYPE_USER_ID = 'User id';
let detected = TYPE_USERNAME;
let resultDiv = document.getElementById("result");
let queryInput = document.getElementById('q');
let queryOutput = document.getElementById('response');
let detectedText = document.getElementById('detected');
let detectedSwitch = document.getElementById('switch');
let copyLink = document.getElementById("copy");
let errorMsg = document.getElementById("error");
let successMsg = document.getElementById("success");
let copiedMsg = document.getElementById("copied");
setDetected(TYPE_USERNAME);
queryInput.addEventListener('keyup', function (e) {
let key = e.which || e.keyCode;
if (key === 13) {
runRoutineV2(queryInput.value, detected);
} else {
runDetection(queryInput.value, (response) => setDetected(response));
}
});
detectedSwitch.addEventListener('click', function (e) {
if(detected === TYPE_USERNAME) {
setDetected(TYPE_USER_ID);
} else {
setDetected(TYPE_USERNAME);
}
// if they're switch the mode while the textbox has content, there's a good chance they want to re-run it in the new mode
if(queryInput.value.length > 0) {
runRoutineV2(queryInput.value, detected);
}
});
copyLink.addEventListener('click', function (e) { copyResults(); });
function runDetection(input, callback) {
if(isNaN(input)) {
callback(TYPE_USERNAME);
} else {
callback(TYPE_USER_ID)
}
}
function setDetected(newValue) {
detected = newValue;
detectedText.innerText = newValue;
}
function runRoutineV2(input, type) {
clearError();
if(input.length <= 0) {
setError("Please provide an username or user id!");
return;
}
console.log("input: " + input);
if (type === TYPE_USERNAME) {
getUserIdV2(input, fetchUserIdV2, failedRequest);
} else if (type === TYPE_USER_ID) {
getUsernameV2(input, fetchUsernameV2, failedRequest);
}
}
function fetchUserIdV2(userid) {
queryOutput.innerText = userid;
setSuccess("User ID retrieved successfully.");
resultDiv.style.display = "";
}
function fetchUsernameV2(username) {
queryOutput.innerHTML = username;
setSuccess("Username retrieved successfully.");
resultDiv.style.display = "";
}
function failedRequest() {
setError("The request you attempted failed! " + detected + " " + queryInput.value + " doesn't exist.");
resultDiv.style.display = "none";
clearSuccess();
}
function badRequest(type, resource) {
setError("The " + type + " '" + resource + "' was not valid!");
}
function setSuccess(successMsgCnts) {
successMsg.innerHTML = successMsgCnts;
setTimeout(clearSuccess, 10000);
clearError();
}
function setCopied(requestType) {
copiedMsg.innerHTML = "Copied " + requestType + "!";
setTimeout(clearCopied, 5000);
}
function clearCopied() {
copiedMsg.innerHTML = "";
}
function clearSuccess() {
successMsg.innerHTML = "";
}
function setError(errorMsgCnts) {
errorMsg.innerHTML = errorMsgCnts;
setTimeout(clearError, 10000);
}
function clearError() {
errorMsg.innerHTML = "";
}
function copyResults() {
results = queryOutput.innerHTML;
if(detected == TYPE_USERNAME) {
setCopied("user id");
} else {
setCopied("username");
}
document.oncopy = function(event) {
event.clipboardData.setData("text", results);
event.preventDefault();
};
document.execCommand("copy", false, null);
}