SHOW:
|
|
- or go back to the newest paste.
1 | - | let version = "4.2"; |
1 | + | let version = "5"; |
2 | - | let createdt = "17 March 2023"; |
2 | + | let created = "13 January 2022"; |
3 | let usage = '!addcom !xp -ul=moderator -cd=5 $(eval q="$(querystring)";$(urlfetch json https://pastebin.com/raw/nK9mF4Y4))'; | |
4 | let designer = "CharismaticZoe"; | |
5 | ||
6 | dates = | |
7 | [ | |
8 | - | [20231012,"1.000.000.000","631.259", "12 October 2023", "12-10-2023"], |
8 | + | |
9 | - | [20231011,"999.836.669","630.908", "11 October 2023", "11-10-2023"], |
9 | + | |
10 | - | [20231010,"999.582.459","630.243", "10 October 2023", "10-10-2023"], |
10 | + | |
11 | - | [20231001,"996.823.362","625.858", "1 October 2023", "1-10-2023"], |
11 | + | |
12 | - | [20230928,"995.253.301","623.330", "28 September 2023", "28-9-2023"], |
12 | + | |
13 | - | [20230923,"988.912.097","620.738", "23 September 2023", "23-9-2023"], |
13 | + | |
14 | - | [20230921,"980.911.897","619.233", "21 September 2023", "21-9-2023"], |
14 | + | |
15 | - | [20230920,"979.815.872","618.202", "20 September 2023", "20-9-2023"], |
15 | + | |
16 | - | [20230915,"976.759.905","614.601", "15 September 2023", "15-9-2023"], |
16 | + | |
17 | - | [20230914,"970.448.185","613.014", "14 September 2023", "14-9-2023"], |
17 | + | |
18 | - | [20230907,"953.530.802","607.458", "7 September 2023", "7-9-2023"], |
18 | + | |
19 | - | [20230905,"946.014.069","605.218", "5 September 2023", "5-9-2023"], |
19 | + | |
20 | - | [20230901,"937.323.819","602.026", "1 September 2023", "1-9-2023"], |
20 | + | |
21 | - | [20230831,"936.579.739","600.961", "31 August 2023", "31-8-2023"], |
21 | + | |
22 | - | [20230615,"869.944.092","550.000", "15 June 2023","15-6-2023"], |
22 | + | |
23 | - | [20230606,"865.046.891","546.090", "6 june 2023","6-6-2023"], |
23 | + | |
24 | - | [20230529,"860.775.006","541.323", "29 may 2023","29-5-2023"], |
24 | + | |
25 | - | [20230524,"855.186.914","538.320", "24 may 2023","24-5-2023"], |
25 | + | |
26 | - | [20230516,"852.533.427","534.558", "16 may 2023","16-5-2023"], |
26 | + | |
27 | - | [20230422,"831.640.922","521.255", "22 April 2023","22-4-2023"], |
27 | + | |
28 | - | [20230414,"821.128.053","516.751", "14 April 2023","14-4-2023"], |
28 | + | |
29 | - | [20230406,"813.500.370","513.097", "6 April 2023","6-4-2023"], |
29 | + | |
30 | - | [20230402,"800.000.445","510.288", "2 April 2023","2-4-2023"], |
30 | + | |
31 | - | [20230401,"798.480.895","510.000", "1 April 2023","1-4-2023"], |
31 | + | |
32 | - | [20230317,"770.888.808","500.000", "17 March 2023","17-3-2023"], |
32 | + | |
33 | - | [20230316,"769.436.948","499.371", "16 March 2023","16-3-2023"], |
33 | + | |
34 | - | [20230315,"764.927.208","497.843", "15 March 2023","15-3-2023"], |
34 | + | |
35 | - | [20230314,"762.750.318","497.549", "14 March 2023","14-3-2023"], |
35 | + | |
36 | - | [20230312,"756.657.930","495.399", "12 March 2023","12-3-2023"], |
36 | + | |
37 | - | [20230309,"745.952.269","493.041", "9 March 2023","9-3-2023"], |
37 | + | |
38 | - | [20230308,"745.952.269","492.451", "8 March 2023","8-3-2023"], |
38 | + | |
39 | - | [20230302,"727.161.481","488.750", "3 March 2023","2-3-2023"], |
39 | + | |
40 | - | [20230224,"700.001.048","482.054", "24 February 2023","24-2-2023"], |
40 | + | |
41 | - | [20230223,"696.689.288","481.661", "23 February 2023","23-2-2023"], |
41 | + | |
42 | - | [20230221,"687.381.368","480.250", "21 February 2023","21-2-2023"], |
42 | + | |
43 | - | [20230216,"678.043.095","476.678", "16 February 2023","16-2-2023"], |
43 | + | |
44 | - | [20230207,"657.717.969","469.082", "7 February 2023","7-2-2023"], |
44 | + | |
45 | - | [20230202,"649.166.931","464.346", "2 February 2023","2-2-2023"], |
45 | + | |
46 | - | [20230129,"640.126.801","461.050", "29 January 2023","29-1-2023"], |
46 | + | |
47 | - | [20230127,"634.550.143","459.298", "27 January 2023","27-1-2023"], |
47 | + | |
48 | - | [20230123,"625.419.044","456.323", "23 January 2023","22-1-2023"], |
48 | + | |
49 | - | [20230122,"625.001.189","455.724", "22 January 2023","22-1-2023"], |
49 | + | |
50 | - | [20230121,"618.098.801","453.832", "21 January 2023","21-1-2023"], |
50 | + | |
51 | - | [20230117,"611.712.926","451.533", "17 January 2023","17-1-2023"], |
51 | + | |
52 | - | [20230114,"606.915.051","450.000", "14 January 2023","14-1-2023"], |
52 | + | |
53 | let date1; | |
54 | let date2; | |
55 | var teststring1 = q.replaceAll("%20", " "); | |
56 | var teststring2 = teststring1.replaceAll("\\", "-"); | |
57 | var teststring2 = teststring1.replaceAll("%2F", "-"); | |
58 | var teststring3 = teststring2.replaceAll("/", "-"); | |
59 | var teststring3 = teststring2.replaceAll("%5C", "-"); | |
60 | let dLen = dates.length; | |
61 | ||
62 | PlaceSpace = teststring3.indexOf(" "); | |
63 | ||
64 | if(PlaceSpace == -1) | |
65 | { | |
66 | var PlaceSepSM = teststring3.indexOf("-"); | |
67 | var PlaceSepMY = teststring3.lastIndexOf("-"); | |
68 | if(PlaceSepSM > 0) | |
69 | { | |
70 | dayte = '0'+ teststring3.slice(0,PlaceSepSM); | |
71 | day = dayte.slice(-2); | |
72 | lengthS = PlaceSepMY- PlaceSepSM -1; | |
73 | if(lengthS >= 1) | |
74 | { | |
75 | var mntte = '0'+ teststring3.substr(PlaceSepSM + 1, lengthS); | |
76 | mnt = mntte.slice(-2); | |
77 | var year = teststring3.substr(PlaceSepMY+ 1); | |
78 | search= year + mnt + day ; | |
79 | let dLen = dates.length; | |
80 | for (let i = 0; i < dLen; i++) | |
81 | { | |
82 | rdat = dates[i][0] ; | |
83 | if(rdat == search) | |
84 | { | |
85 | message = message_start + dates[i][1]+ message_middle_1 + dates[i][2] + message_middle_2 + dates[i][3]; | |
86 | break; | |
87 | } | |
88 | if(rdat < search) | |
89 | { | |
90 | message = message_start + 'No data has been found for the date ' + teststring3 + '. Closest earlier known date is ' + dates[i][3] + ' with ' + dates[i][1] + ' xp and ' + dates[i][2] + ' pókemon caught' ; | |
91 | break; | |
92 | } | |
93 | if (i == dLen - 1) | |
94 | { | |
95 | message = message_start + 'No data has been found for the date ' + teststring3 + '. the earliest known date is ' + dates[i][3] + ' with ' + dates[i][1] + ' xp and ' + dates[i][2] + ' pókemon caught' ; | |
96 | break; | |
97 | } | |
98 | } | |
99 | } | |
100 | else | |
101 | { | |
102 | message = message_start + 'No data has been found for the date ' + teststring3 + '. last known date is ' + dates[0][3] + ' with ' + dates[0][1] + ' xp and ' + dates[0][2] + ' pókemon caught' ; | |
103 | } | |
104 | } | |
105 | else | |
106 | { | |
107 | uq = q.toUpperCase(); | |
108 | message = message_start + 'No data has been found for the date ' + teststring3 + '. last known date is ' + dates[0][3] + ' with ' + dates[0][1] + ' xp and ' + dates[0][2] + ' pókemon caught' ; | |
109 | switch (uq) | |
110 | { | |
111 | case "LIST": | |
112 | let check; | |
113 | message = message_start + 'Last known dates: '; | |
114 | let sep = ' '; | |
115 | for (let i = 0; i < dLen; i++) | |
116 | { | |
117 | check = message.length + dates[i][4].length; | |
118 | if(check >=500) | |
119 | { | |
120 | break; | |
121 | } | |
122 | message = message + sep + dates[i][4]; | |
123 | sep = ', '; | |
124 | } | |
125 | break; | |
126 | ||
127 | case "HELP": | |
128 | message = message_start + 'Type !xp for the last know xp. Type !xp LIST for a list of last know dates (max 500 positions). Type !xp <date> for values on date. Type !xp <date><space><date> for comparison between 2 dates. Type !xp version for version data.'; | |
129 | break; | |
130 | ||
131 | case "ASK": | |
132 | message = '@Jaytheunderdog can you show your XP please :rolling_eyes: '; | |
133 | break; | |
134 | ||
135 | case "VERSION": | |
136 | message = message_start + 'Vesion: ' + version + ' (' + createdt +') by ' + designer; | |
137 | break; | |
138 | ||
139 | } | |
140 | } | |
141 | } | |
142 | else | |
143 | { | |
144 | day1t = teststring3.slice(0,PlaceSpace ); | |
145 | var PlaceSepSM = day1t.indexOf("-"); | |
146 | var PlaceSepMY = day1t.lastIndexOf("-"); | |
147 | let caughtday1; | |
148 | let caughtxpy1; | |
149 | let displayday1; | |
150 | let msgday1; | |
151 | if(PlaceSepSM > 0) | |
152 | { | |
153 | dayte = '0'+ teststring3.slice(0,PlaceSepSM); | |
154 | day = dayte.slice(-2); | |
155 | lengthS = PlaceSepMY- PlaceSepSM -1; | |
156 | if(lengthS >= 1) | |
157 | { | |
158 | let blncont = false; | |
159 | var mntte = '0'+ teststring3.substr(PlaceSepSM + 1, lengthS); | |
160 | mnt = mntte.slice(-2); | |
161 | lengthS = PlaceSpace - PlaceSepMY-1; | |
162 | var year = teststring3.substr(PlaceSepMY+ 1, lengthS); | |
163 | - | if(check >=400) |
163 | + | |
164 | ||
165 | ||
166 | for (let i = 0; i < dLen; i++) | |
167 | { | |
168 | rdat = dates[i][0] ; | |
169 | caughtday1 = dates[i][2]; | |
170 | caughtxpy1 = dates[i][1]; | |
171 | displayday1 = dates[i][3]; | |
172 | - | case "LISTL": |
172 | + | |
173 | - | let check3; |
173 | + | |
174 | { | |
175 | - | let sep3 = ' '; |
175 | + | |
176 | break; | |
177 | } | |
178 | - | check3 = message.length + dates[i][4].length; |
178 | + | |
179 | - | if(check3 >=400) |
179 | + | |
180 | blncont = 'closest'; | |
181 | break; | |
182 | } | |
183 | - | message = message + sep3 + dates[i][4]; |
183 | + | |
184 | - | sep3 = ', '; |
184 | + | |
185 | { | |
186 | msgday1 = ' '; | |
187 | } | |
188 | - | case "LISTF": |
188 | + | |
189 | - | let check2; |
189 | + | |
190 | - | let sep2 = ' '; |
190 | + | |
191 | - | message = message_start + 'First known dates: '; |
191 | + | |
192 | - | for (let i = dLen-1; i > 1; i--) |
192 | + | |
193 | { | |
194 | - | check2 = message.length + dates[i][4].length; |
194 | + | |
195 | - | if(check2 >=400) |
195 | + | |
196 | } | |
197 | else | |
198 | { | |
199 | - | message = message + sep2 + dates[i][4]; |
199 | + | |
200 | - | sep2 = ', '; |
200 | + | |
201 | displayday1 = dates[dLen-1][3]; | |
202 | msgday1 = 'No data has been found for the date ' + day1t + '. First known date is ' + displayday1 + '. '; | |
203 | message = msgday1; | |
204 | } | |
205 | } | |
206 | - | message = message_start + 'Type !xp for the last know xp. Type !xp LISTL for a list of last know dates (max 400 positions). Type !xp LISTF for a list of first know dates (max 400 positions). Type !xp <date> for values on date. Type !xp <date><space><date> for comparison between 2 dates. Type !xp version for version data. !xp Milestones for milestone dates'; |
206 | + | |
207 | { | |
208 | caughtday1 = dates[dLen-1][2]; | |
209 | caughtxpy1 = dates[dLen-1][1]; | |
210 | displayday1 = dates[dLen-1][3]; | |
211 | msgday1 = 'No data has been found for the date ' + day1t + '. First known date is ' + displayday1 + '. '; | |
212 | ||
213 | - | case "PARTNER": |
213 | + | |
214 | - | message = '@JayTheUnderdog became twitch partner om the 30th august 2023'; |
214 | + | |
215 | var PlaceSepSM2 = day2t.indexOf("-"); | |
216 | var PlaceSepMY2 = day2t.lastIndexOf("-"); | |
217 | - | case "MILESTONES": |
217 | + | |
218 | - | message = '28-11-23: 10K Raids, 14-1-23:450K, 17-3-23: 500K , 23-5-23: Hit Legend, 15-6-23: 550K, 1-7-23: Hit Veteran, 10-8-23: Hit Veteran again, 15-8-23: Hit Expert, 28-8-23: Hit Legend again, 29-8-23:600K, 12-10-23:1B XP, 12-11-23: Hit Legend again, 7-1-24: 700K, 22-3-24: Hit Veteran again, 28-3-24: 750K, 18-6-24: 800K, 23-10-24: Hit Legend again,3-11-24: 850K, 3-3-25: 900K'; |
218 | + | |
219 | let blncont2 = false; | |
220 | let caughtday2; | |
221 | - | case "MILESTCATCH": |
221 | + | |
222 | - | message = '20-10-22:400K, 28-11-23: 10K Raids, 14-1-23:450K, 17-3-23: 500K , 6-4-23: 10K Trash raids , 15-6-23: 550K, 29-8-23:600K, 12-10-23:1B XP, 7-1-24: 700K, 28-3-24: 750K, 18-6-24: 800K, 3-11-24: 850K, 3-3-25: 900K'; |
222 | + | |
223 | if(PlaceSepSM2 > 0) | |
224 | { | |
225 | - | case "MILESTPVP": |
225 | + | |
226 | - | message = '23-5-23: Hit Legend, 1-7-23: Hit Veteran, 10-8-23: Hit Veteran again, 15-8-23: Hit Expert, 28-8-23: Hit Legend again, 12-11-23: Hit Legend again, 22-3-24: Hit Veteran again, 23-10-24: Hit Legend again, 31-1-25: Hit Legend again'; |
226 | + | |
227 | lengthS2 = PlaceSepMY2 - PlaceSepSM2-1 ; | |
228 | if(lengthS2 >= 1) | |
229 | { | |
230 | var mntte2 = '0'+ day2t.substr(PlaceSepSM2 + 1, lengthS2); | |
231 | mnt2 = mntte2.slice(-2); | |
232 | lengthS2 = PlaceSepMY2; | |
233 | var year2 = day2t.substr(PlaceSepMY2+1, 4); | |
234 | search2 = year2 + mnt2 + day2 ; | |
235 | for (let i = 0; i < dLen; i++) | |
236 | { | |
237 | rdat2 = dates[i][0] ; | |
238 | caughtday2 = dates[i][2]; | |
239 | caughtxpy2 = dates[i][1]; | |
240 | displayday2 = dates[i][3]; | |
241 | if(rdat2 == search2) | |
242 | { | |
243 | blncont2 = 'true'; | |
244 | break; | |
245 | } | |
246 | else | |
247 | { | |
248 | if(rdat2 < search2) | |
249 | { | |
250 | blncont2 = 'closest'; | |
251 | break; | |
252 | } | |
253 | else | |
254 | { | |
255 | caughtday2 = dates[0][2]; | |
256 | caughtxpy2 = dates[0][1]; | |
257 | displayday2 = dates[0][3]; | |
258 | blncont2 = 'last'; | |
259 | } | |
260 | } | |
261 | } | |
262 | if(blncont2 == 'true') | |
263 | { | |
264 | msgday2 = ' '; | |
265 | } | |
266 | if(blncont2 == 'closest') | |
267 | { | |
268 | msgday2 = 'No data has been found for the date ' + day2t + ' the closest earlier day is ' + displayday2 + '. '; | |
269 | } | |
270 | if(blncont2 == 'last') | |
271 | { | |
272 | msgday2 = 'No data has been found for the date ' + day2t + '. Last known date is ' + displayday2 + '. '; | |
273 | } | |
274 | } | |
275 | else | |
276 | { | |
277 | caughtday2 = dates[0][2]; | |
278 | caughtxpy2 = dates[0][1]; | |
279 | displayday2 = dates[0][3]; | |
280 | msgday2 = 'No data has been found for the date ' + day2t + '. Last known date is ' + displayday1 + '. '; | |
281 | } | |
282 | } | |
283 | else | |
284 | { | |
285 | caughtday2 = dates[0][2]; | |
286 | caughtxpy2 = dates[0][1]; | |
287 | displayday2 = dates[0][3]; | |
288 | msgday2 = 'No data has been found for the date ' + day2t + '. Last known date is ' + displayday1 + '. '; | |
289 | } | |
290 | var countsting1 = caughtday1.replaceAll(".", ""); | |
291 | var countsting2 = caughtday2.replaceAll(".", ""); | |
292 | var intday1 = parseInt(countsting1); | |
293 | var intday2 = parseInt(countsting2); | |
294 | var Iresult = Math.abs(intday1 - intday2); | |
295 | var strIresult = Iresult.toLocaleString('nl-NL', { minimumFractionDigits: 0 }); | |
296 | var xpcountsting1 = caughtxpy1.replaceAll(".", ""); | |
297 | var xpcountsting2 = caughtxpy2.replaceAll(".", ""); | |
298 | var xpintday1 = parseInt(day1t); | |
299 | var xpintday2 = parseInt(day2t); | |
300 | var xpIresult = Math.abs(xpintday1 - xpintday2); | |
301 | ||
302 | var strxpIresult = xpIresult.toLocaleString('nl-NL', { minimumFractionDigits: 0 }); | |
303 | ||
304 | var d1 = new Date(day1t.substring(6,10), day1t.substring(3,5), day1t.substring(0,2)); | |
305 | var d2 = new Date(day2t.substring(6,10), day2t.substring(3,5), day2t.substring(0,2)); | |
306 | var diff = d2.getTime() - d1.getTime(); | |
307 | message = message_start + msgday1 + msgday2 + strIresult + message_middle_p_1 + strxpIresult + message_middle_p_2 + displayday1 + | |
308 | message_middle_p_3 + displayday2 + ' ( average of ' + day2t + '/'+ day2t.substring(6,10) + '/' + day2t.substring(3,5) + '/' + day2t.substring(0,2)+ ' a day)'; | |
309 | ||
310 | ||
311 | } | |
312 | } | |
313 | message; |