View difference between Paste ID: FNnrjV99 and y3bRu6VG
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;