Repository navigation
Expand file tree
/
Copy pathFetch.java
More file actions
461 lines (362 loc) · 13.8 KB
/
Copy pathFetch.java
File metadata and controls
461 lines (362 loc) · 13.8 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
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
// WebForms.java 2.2 - The Back-End Part of WebForms Core Technology, Owned by Elanat (https://elanat.net)
// Compatible with WebFormsJS version 2.2
package webformscore;
// Do not Add any Data Before or After it
public class Fetch {
private static final char RS = (char) 30;
private static final char US = (char) 31;
// Method
public static String random(int maxValue) {
return "@mr" + maxValue;
}
public static String random(int minValue, int maxValue) {
return "@mr" + maxValue + RS + minValue;
}
public static String spaceToChar(String text, String character) {
return "@sc" + character + RS + text;
}
public static String spaceToChar(String text) {
return spaceToChar(text, "-");
}
public static String encodeUri(String text) {
return "@ue" + text;
}
public static String decodeUri(String text) {
return "@ud" + text;
}
public static String method(String methodName, Object[] args) {
String returnValue = "@cm" + methodName;
if (args != null) {
returnValue += (args.length > 0) ? RS + String.join(String.valueOf(US), toStringArray(args)) : "";
}
return returnValue;
}
public static String method(String methodName) {
return method(methodName, null);
}
public static String moduleMethod(String methodName, Object[] args) {
String returnValue = "@cM" + methodName;
if (args != null) {
returnValue += (args.length > 0) ? RS + String.join(String.valueOf(US), toStringArray(args)) : "";
}
return returnValue;
}
public static String moduleMethod(String methodName) {
return moduleMethod(methodName, null);
}
// MethodName: The Method Name May Need to Include the Class Name, Separated by a Period. Example: MyClassName.MyMethodName
public static String wasmMethod(String wasmLanguage, String wasmUrl, String methodName, Object[] args) {
String returnValue = "@wA" + wasmLanguage + RS + wasmUrl + RS + methodName;
if (args != null) {
returnValue += (args.length > 0) ? RS + String.join(String.valueOf(US), toStringArray(args)) : "";
}
return returnValue;
}
public static String wasmMethod(String wasmLanguage, String wasmUrl, String methodName) {
return wasmMethod(wasmLanguage, wasmUrl, methodName, null);
}
public static String script(String scriptText) {
return "@_" + scriptText.replace("\n", "$[ln];");
}
public static String loadUrl(String url, boolean fetchScript) {
return "@lu" + url + (fetchScript ? RS + "1" : "");
}
public static String loadUrl(String url) {
return loadUrl(url, false);
}
public static String loadHtml(String url, String fetchInputPlace, boolean fetchScript) {
return "@lh" + url + RS + (fetchScript ? "1" : "0") + ((fetchInputPlace != null && !fetchInputPlace.isEmpty()) ? RS + fetchInputPlace : "");
}
public static String loadHtml(String url, String fetchInputPlace) {
return loadHtml(url, fetchInputPlace, false);
}
public static String loadHtml(String url) {
return loadHtml(url, "", false);
}
public static String loadLine(String url, int line) {
return "@ll" + url + RS + line;
}
public static String loadIni(String url, String name, boolean isINILike) {
return "@li" + url + RS + name + (isINILike ? RS + "1" : "");
}
public static String loadIni(String url, String name) {
return loadIni(url, name, false);
}
// Name: Name Or Nested Paths. Is Supprt Index (Student[8].Name). Nested Paths Index Starts At 0
public static String loadJson(String url, String name) {
return "@lj" + url + RS + name;
}
// Name: Name Or XPath; XPath Index Starts At 1
public static String loadXml(String url, String name) {
return "@lx" + url + RS + name;
}
// MethodName: It's Check Function Or Variable
public static String hasMethod(String methodName) {
return "@hm" + methodName;
}
public static String hasModuleMethod(String methodName) {
return "@hM" + methodName;
}
// This Method Return True Or False If Key Pressed
// Modifier: Alt, AltGraph, Control, Meta, Shift, CapsLock, NumLock, ScrollLock
public static String getModifierState(String modifier) {
return "@ms" + modifier;
}
// Math
public static String math(String methodName, Object[] args) {
String returnValue = "@M#" + methodName;
if (args != null) {
returnValue += (args.length > 0) ? RS + String.join(String.valueOf(US), toStringArray(args)) : "";
}
return returnValue;
}
public static String math(String methodName) {
return math(methodName, null);
}
// Date
public static final String DATE_YEAR = "@dy";
// Month In JavaScript Is Start From Index 0, Month In WebForms Core Is Start From Index 1
public static final String DATE_MONTH = "@dm";
public static final String DATE_DAY = "@dd";
public static final String DATE_DATE = "@dD";
public static final String DATE_HOURS = "@dh";
public static final String DATE_MINUTES = "@di";
public static final String DATE_SECONDS = "@ds";
public static final String DATE_MILLISECONDS = "@dl";
// String
public static final String SPACE = "@sp";
public static final String AT_SIGN = "@sa";
// Tag
public static String getId(String inputPlace) {
return "@$i" + inputPlace;
}
public static String getName(String inputPlace) {
return "@$n" + inputPlace;
}
public static String getValue(String inputPlace) {
return "@$v" + inputPlace;
}
public static String getValueLength(String inputPlace) {
return "@$e" + inputPlace;
}
public static String getClass(String inputPlace) {
return "@$c" + inputPlace;
}
public static String getStyle(String inputPlace) {
return "@$s" + inputPlace;
}
public static String getTitle(String inputPlace) {
return "@$l" + inputPlace;
}
public static String getLabel(String inputPlace) {
return "@$A" + inputPlace;
}
public static String getText(String inputPlace) {
return "@$t" + inputPlace;
}
public static String getOuterText(String inputPlace) {
return "@$o" + inputPlace;
}
public static String getTextLength(String inputPlace) {
return "@$g" + inputPlace;
}
public static String getAttribute(String inputPlace, String attribute) {
return "@$a" + inputPlace + RS + attribute;
}
public static String getWidth(String inputPlace) {
return "@$w" + inputPlace;
}
public static String getHeight(String inputPlace) {
return "@$h" + inputPlace;
}
public static String getIsReadOnly(String inputPlace) {
return "@$r" + inputPlace;
}
public static String getSelectedIndex(String inputPlace) {
return "@$x" + inputPlace;
}
public static String getIndex(String inputPlace) {
return "@$I" + inputPlace;
}
public static String getTextAlign(String inputPlace) {
return "@$T" + inputPlace;
}
public static String getNodeLength(String inputPlace) {
return "@$L" + inputPlace;
}
public static String getIsVisible(String inputPlace) {
return "@$V" + inputPlace;
}
public static String getTagHash(String inputPlace) {
return "@$H" + inputPlace;
}
// Save
public static String hasHash(String hash) {
return "@HH" + hash;
}
public static String cookie(String key) {
return "@co" + key;
}
public static String save(String key, String replaceValue) {
return "@cs" + key + RS + replaceValue;
}
public static String save(String key) {
return "@cs" + key;
}
public static String save() {
return save(".");
}
public static String saveThenRemove(String key) {
return "@cl" + key;
}
public static String saveLength(String key) {
return "@cg" + key;
}
public static String cache(String key, String replaceValue) {
return "@cd" + key + RS + replaceValue;
}
public static String cache(String key) {
return "@cd" + key;
}
public static String cache() {
return cache(".");
}
public static String cacheThenRemove(String key) {
return "@ct" + key;
}
public static String cacheLength(String key) {
return "@cG" + key;
}
public static String saveLine(String key, int line) {
return "@lL" + key + "[" + line;
}
public static String saveLine(String key) {
return saveLine(key, 0);
}
public static String saveLine() {
return saveLine(".", 0);
}
public static String saveLineConsume(String key) {
return "@lL" + key;
}
public static String saveLineConsume() {
return saveLineConsume(".");
}
// INIKey: Only Direct Key is Supported
public static String saveIni(String key, String iniKey) {
return "@lI" + key + "[" + iniKey;
}
public static String cacheLine(String key, int line) {
return "@dL" + key + "[" + line;
}
public static String cacheLine(String key) {
return cacheLine(key, 0);
}
public static String cacheLine() {
return cacheLine(".", 0);
}
public static String cacheLineConsume(String key) {
return "@dL" + key;
}
public static String cacheLineConsume() {
return cacheLineConsume(".");
}
// INIKey: Only Direct Key is Supported
public static String cacheIni(String key, String iniKey) {
return "@dI" + key + "[" + iniKey;
}
// Format Storage
public static String formatStore(String key) {
return "@fr" + key;
}
public static String formatStoreByXmlQuery(String key, String xpath) {
return "@fx" + key + RS + xpath;
}
public static String formatStoreByJsonQuery(String key, String query) {
return "@fj" + key + RS + query;
}
public static String formatStoreByIni(String key, String name) {
return "@fi" + key + RS + name;
}
public static String formatStoreByText(String key, int line) {
return "@ft" + key + RS + line;
}
public static String formatStoreByVariable(String key) {
return "@fv" + key;
}
// State
public static String hasState(String path) {
return "@hs" + path;
}
// SSE
public static String sseIsConnected(String path) {
return "@Sc" + path;
}
// WebSockets
public static String webSocketsIsConnected(String path) {
return "@Wc" + path;
}
public static String webSocketsIsConnected() {
return webSocketsIsConnected("");
}
// Document
public static final String TAB_IS_ACTIVE = "@da";
// Window
public static final String HREF = "@wf";
public static final String PATH_NAME = "@wP";
public static String query(String name) {
return "@wq" + name;
}
public static String query() {
return query("*");
}
public static final String HASH = "@wh";
public static final String HOST = "@wH";
public static final String HOST_NAME = "@wn";
public static final String PORT = "@wT";
public static final String ORIGIN = "@wo";
public static final String GET_SELECTION = "@ws";
public static final String SCROLL_X = "@wx";
public static final String SCROLL_Y = "@wy";
public static String segment(int index) {
return "@wS" + index;
}
// It Only Works when the String Starts with the Tilde Character (~). The Path is Also Separated by the Slash Character (/). #~/Segment1/Segment2/Segment3
public static String hashSegment(int index) {
return "@wt" + index;
}
// Navigator
public static final String CLIPBOARD_TEXT = "@nC";
public static final String GEO_LATITUDE = "@nW";
public static final String GEO_LONGITUDE = "@nO";
public static final String LANGUAGE = "@nL";
public static final String IS_ON_LINE = "@no";
public static final String USER_AGENT = "@na";
// Screen
public static final String SCREEN_WIDTH = "@sw";
public static final String SCREEN_HEIGHT = "@sh";
public static final String SCREEN_ORIENTATION_TYPE = "@so";
public static final String SCREEN_ORIENTATION_ANGLE = "@sr";
// Performance
public static final String TIME_ORIGIN = "@pt";
public static final String PERFORMANCE_NOW = "@pn";
// Event
public static final String EVENT = "@EV";
public static final String EVENT_SERIALIZE = "@Es";
public static final String EVENT_KEY = "@ek";
public static final String EVENT_WHICH = "@ew";
public static final String EVENT_CLIENT_X = "@ex";
public static final String EVENT_CLIENT_Y = "@ey";
public static final String EVENT_PAGE_X = "@eX";
public static final String EVENT_PAGE_Y = "@eY";
public static final String EVENT_OFFSET_X = "@Ex";
public static final String EVENT_OFFSET_Y = "@Ey";
public static final String EVENT_DELTA_Y = "@ed";
private static String[] toStringArray(Object[] args) {
String[] result = new String[args.length];
for (int i = 0; i < args.length; i++) {
result[i] = args[i] != null ? args[i].toString() : "";
}
return result;
}
}