Advertisement
SilkKheldar

GoalJay

Sep 5th, 2023 (edited)
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.05 KB | None | 0 0
  1. let version = "1.0";
  2. let createdt = "16 MAy2023";
  3. let usage = '!addcom !goal -ul=moderator -cd=5 $(eval q="$(querystring)";$(urlfetch json https://pastebin.com/raw/RdZ4ZCfM))';
  4. let designer = "Silkenator23";
  5.  
  6. dates =
  7. [
  8. [20231012,"1.000.000.000","631.259", "12 October 2023", "12-10-2023"],
  9. [20231011,"999.836.669","630.908", "11 October 2023", "11-10-2023"],
  10. [20231010,"999.582.459","630.243", "10 October 2023", "10-10-2023"],
  11. [20231001,"996.823.362","625.858", "1 October 2023", "1-10-2023"],
  12. [20230928,"995.253.301","623.330", "28 September 2023", "28-9-2023"],
  13. [20230923,"988.912.097","620.738", "23 September 2023", "23-9-2023"],
  14. [20230921,"980.911.897","619.233", "21 September 2023", "21-9-2023"],
  15. [20230920,"979.815.872","618.202", "20 September 2023", "20-9-2023"],
  16. [20230915,"976.759.905","614.601", "15 September 2023", "15-9-2023"],
  17. [20230914,"970.448.185","613.014", "14 September 2023", "14-9-2023"],
  18. [20230907,"953.530.802","607.458", "7 September 2023", "7-9-2023"],
  19. [20230905,"946.014.069","605.218", "5 September 2023", "5-9-2023"],
  20. [20230901,"937.323.819","602.026", "1 September 2023", "1-9-2023"],
  21. [20230831,"936.579.739","600.961", "31 August 2023", "31-8-2023"],
  22. [20230615,"869.944.092","550.000", "15 June 2023","15-6-2023"],
  23. [20230606,"865.046.891","546.090", "6 june 2023","6-6-2023"],
  24. [20230529,"860.775.006","541.323", "29 may 2023","29-5-2023"],
  25. [20230524,"855.186.914","538.320", "24 may 2023","24-5-2023"],
  26. [20230516,"852.533.427","534.558", "16 may 2023","16-5-2023"],
  27. [20230422,"831.640.922","521.255", "22 April 2023","22-4-2023"],
  28. [20230414,"821.128.053","516.751", "14 April 2023","14-4-2023"],
  29. [20230406,"813.500.370","513.097", "6 April 2023","6-4-2023"],
  30. [20230402,"800.000.445","510.288", "2 April 2023","2-4-2023"],
  31. [20230401,"798.480.895","510.000", "1 April 2023","1-4-2023"],
  32. [20230317,"770.888.808","500.000", "17 March 2023","17-3-2023"],
  33. [20230316,"769.436.948","499.371", "16 March 2023","16-3-2023"],
  34. [20230315,"764.927.208","497.843", "15 March 2023","15-3-2023"],
  35. [20230314,"762.750.318","497.549", "14 March 2023","14-3-2023"],
  36. [20230312,"756.657.930","495.399", "12 March 2023","12-3-2023"],
  37. [20230309,"745.952.269","493.041", "9 March 2023","9-3-2023"],
  38. [20230308,"745.952.269","492.451", "8 March 2023","8-3-2023"],
  39. [20230302,"727.161.481","488.750", "3 March 2023","2-3-2023"],
  40. [20230224,"700.001.048","482.054", "24 February 2023","24-2-2023"],
  41. [20230223,"696.689.288","481.661", "23 February 2023","23-2-2023"],
  42. [20230221,"687.381.368","480.250", "21 February 2023","21-2-2023"],
  43. [20230216,"678.043.095","476.678", "16 February 2023","16-2-2023"],
  44. [20230207,"657.717.969","469.082", "7 February 2023","7-2-2023"],
  45. [20230202,"649.166.931","464.346", "2 February 2023","2-2-2023"],
  46. [20230129,"640.126.801","461.050", "29 January 2023","29-1-2023"],
  47. [20230127,"634.550.143","459.298", "27 January 2023","27-1-2023"],
  48. [20230123,"625.419.044","456.323", "23 January 2023","22-1-2023"],
  49. [20230122,"625.001.189","455.724", "22 January 2023","22-1-2023"],
  50. [20230121,"618.098.801","453.832", "21 January 2023","21-1-2023"],
  51. [20230117,"611.712.926","451.533", "17 January 2023","17-1-2023"],
  52. [20230114,"606.915.051","450.000", "14 January 2023","14-1-2023"],
  53. [20230113,"604.654.064","449.033", "13 January 2023","13-1-2023"],
  54. [20230111,"600.012.264","448.067", "11 January 2023","11-1-2023"],
  55. [20230110,"594.890.943","447.824", "10 January 2023","10-1-2023"],
  56. [20230107,"588.290.943","445.341", "7 January 2023","7-1-2023"],
  57. [20230103,"579.420.623","442.897", "3 January 2023","3-1-2023"],
  58. [20221231,"573.717.364","441.520", "31 december 2022","31-12-2022"],
  59. [20221224,"561.297.654","437.787", "24 december 2022","24-12-2022"],
  60. [20221217,"549.454.877","432.944", "17 december 2022","17-12-2022"],
  61. [20221215,"546.606.622","431.594", "15 december 2022","15-12-2022"],
  62. [20221212,"542.739.772","429.675", "12 december 2022","12-12-2022"],
  63. [20221211,"541.115.962","429.003", "11 december 2022","11-12-2022"],
  64. [20221201,"531.730.536","423.913", "1 december 2022", "1-12-2022"],
  65. [20221128,"527.175.060","421.561", "28 November 2022","28-11-2022"],
  66. [20221127,"523.358.680","420.622", "27 November 2022","27-11-2022"],
  67. [20221126,"519.494.270","419.837", "26 November 2022","26-11-2022"],
  68. [20221121,"517.506.849","417.538", "21 November 2022","21-11-2022"],
  69. [20221114,"514.158.392","415.227", "14 November 2022","14-11-2022"],
  70. [20221110,"511.527.778","412.218", "10 November 2022","10-11-2022"],
  71. [20221108,"508.794.503","410.571", "8 November 2022", "8-11-2022"],
  72. [20221105,"505.744.513","408.653", "5 November 2022", "5-11-2022"],
  73. [20221031,"500.007.208","405.203", "31 Oktober 2022","31-10-2022"],
  74. [20221020,"490.340.413","400.000", "20 October 2022","20-10-2022"],
  75. [20221017,"486.430.211","398.075", "17 October 2022","17-10-2022"],
  76. [20221012,"478.551.790","394.481", "12 October 2022","12-10-2022"],
  77. [20221002,"468.731.478","388.412", "2 October 2022", "2-10-2022"],
  78. [20220924,"463.865.718","384.043", "24 September 2022", "24-9-2022"],
  79. [20220905,"447.067.085","370.417", "5 September 2022", "5-9-2022"],
  80. [20220904,"445.448.705","369.688", "4 September 2022", "4-9-2022"]
  81. ];
  82.  
  83. message_start = "/me ";
  84. message_middle_1 = " xp ";
  85. message_middle_2 = " pókemon caught on ";
  86. message_middle_p_1 = " pókemon were caught and ";
  87. message_middle_p_2 = " xp was earned between ";
  88. message_middle_p_3 = " and ";
  89. goal = 1000000000;
  90. const goal_date = new Date("2023-10-12");
  91.  
  92. message_goal = " XP to earn and " ;
  93. message_goal_2 = " days before 12 oktober 2023. Catch goal a day is: ";
  94.  
  95.  
  96. if (q == null||q=="")
  97. {
  98. var countsting1_s ;
  99. countsting1_s = dates[0][1].replaceAll(".", "");
  100. var xpIresult_s = Math.abs(countsting1_s - goal);
  101. var strxpIresult_s = xpIresult_s.toLocaleString('nl-NL', { minimumFractionDigits: 0 });
  102.  
  103. var date_Str_s_s = dates[0][0].toString();
  104. var date_Str_s = date_Str_s_s.slice(0, 4) + '-' + date_Str_s_s.slice(4, 6) + '-' + date_Str_s_s.slice(6, 8);
  105. Date_s = new Date(date_Str_s);
  106. var Difference_In_Time = goal_date.getTime() - Date_s.getTime();
  107. var Difference_In_Days = Math.ceil(Difference_In_Time / (1000 * 3600 * 24));
  108.  
  109. var p_per_day = 0;
  110. if (Difference_In_Days != 0 )
  111. {
  112. p_per_day = Math.ceil(xpIresult_s / Difference_In_Days);
  113. }
  114. else
  115. {
  116. p_per_day = xpIresult_s ;
  117. }
  118. message = message_start + dates[0][1]+ message_middle_1 + dates[0][2] + message_middle_2 + dates[0][3] + message_middle_p_3 + strxpIresult_s + message_goal + Difference_In_Days + message_goal_2 + p_per_day + ' XP' ;
  119. }
  120. else
  121. {
  122. let date1;
  123. let date2;
  124. var teststring1 = q.replaceAll("%20", " ");
  125. var teststring2 = teststring1.replaceAll("\\", "-");
  126. var teststring2 = teststring1.replaceAll("%2F", "-");
  127. var teststring3 = teststring2.replaceAll("/", "-");
  128. var teststring3 = teststring2.replaceAll("%5C", "-");
  129. let dLen = dates.length;
  130.  
  131. PlaceSpace = teststring3.indexOf(" ");
  132.  
  133. if(PlaceSpace == -1)
  134. {
  135. var PlaceSepSM = teststring3.indexOf("-");
  136. var PlaceSepMY = teststring3.lastIndexOf("-");
  137. if(PlaceSepSM > 0)
  138. {
  139. dayte = '0'+ teststring3.slice(0,PlaceSepSM);
  140. day = dayte.slice(-2);
  141. lengthS = PlaceSepMY- PlaceSepSM -1;
  142. if(lengthS >= 1)
  143. {
  144. var mntte = '0'+ teststring3.substr(PlaceSepSM + 1, lengthS);
  145. mnt = mntte.slice(-2);
  146. var year = teststring3.substr(PlaceSepMY+ 1);
  147. search= year + mnt + day ;
  148. let dLen = dates.length;
  149. var RowI = 0;
  150. for (let i = 0; i < dLen; i++)
  151. {
  152. rdat = dates[i][0] ;
  153. if(rdat == search)
  154. {
  155. message = message_start + dates[i][1]+ message_middle_1 + dates[i][2] + message_middle_2 + dates[i][3];
  156. RowI = i;
  157. break;
  158. }
  159. if(rdat < search)
  160. {
  161. 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' ;
  162. RowI = i;
  163. break;
  164. }
  165. if (i == dLen - 1)
  166. {
  167. 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' ;
  168. RowI = i;
  169. break;
  170. }
  171. }
  172. var countsting1_s2 ;
  173. countsting1_s2 = dates[RowI][2].replaceAll(".", "");
  174. var xpIresult_s2 = Math.abs(goal-countsting1_s2);
  175. var strxpIresult_s2 = xpIresult_s2.toLocaleString('nl-NL', { minimumFractionDigits: 0 });
  176.  
  177. var date_Str_s_s2 = dates[RowI][0].toString();
  178. var date_Str_s2 = date_Str_s_s2.slice(0, 4) + '-' + date_Str_s_s2.slice(4, 6) + '-' + date_Str_s_s2.slice(6, 8);
  179. Date_s2 = new Date(date_Str_s2);
  180. var Difference_In_Time2 = goal_date.getTime() - Date_s2.getTime();
  181. var Difference_In_Days2 = Math.ceil(Difference_In_Time2 / (1000 * 3600 * 24));
  182.  
  183. var p_per_day2 = Math.ceil(xpIresult_s2 / Difference_In_Days2);
  184. message = message + message_middle_p_3 + strxpIresult_s2 + message_goal + Difference_In_Days2 + message_goal_2 + p_per_day2 + ' pókemon';
  185.  
  186.  
  187. }
  188. else
  189. {
  190. 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' ;
  191. }
  192. }
  193. else
  194. {
  195. uq = q.toUpperCase();
  196. 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' ;
  197. switch (uq)
  198. {
  199. case "LIST":
  200. let check;
  201. message = message_start + 'Last known dates: ';
  202. let sep = ' ';
  203. for (let i = 0; i < dLen; i++)
  204. {
  205. check = message.length + dates[i][4].length;
  206. if(check >=400)
  207. {
  208. break;
  209. }
  210. message = message + sep + dates[i][4];
  211. sep = ', ';
  212. }
  213. break;
  214.  
  215. case "LISTL":
  216. let check3;
  217. message = message_start + 'Last known dates: ';
  218. let sep3 = ' ';
  219. for (let i = 0; i < dLen; i++)
  220. {
  221. check3 = message.length + dates[i][4].length;
  222. if(check3 >=400)
  223. {
  224. break;
  225. }
  226. message = message + sep3 + dates[i][4];
  227. sep3 = ', ';
  228. }
  229. break;
  230.  
  231. case "LISTF":
  232. let check2;
  233. let sep2 = ' ';
  234. message = message_start + 'First known dates: ';
  235. for (let i = dLen-1; i > 1; i--)
  236. {
  237. check2 = message.length + dates[i][4].length;
  238. if(check2 >=400)
  239. {
  240. break;
  241. }
  242. message = message + sep2 + dates[i][4];
  243. sep2 = ', ';
  244. }
  245. break;
  246.  
  247.  
  248. case "HELP":
  249. message = message_start + 'Type !goal for the last know xp. Type !goal LISTL for a list of last know dates (max 400 positions). Type !goal LISTF for a list of first know dates (max 400 positions). Type !goal <date> for values on date. Type !goal <date><space><date> for comparison between 2 dates. Type !goal version for version data.';
  250. break;
  251.  
  252. case "ASK":
  253. message = '@iiamlaura can you show your XP and pokemon caught please :rolling_eyes: ';
  254. break;
  255.  
  256.  
  257. case "VERSION":
  258. message = message_start + 'Vesion: ' + version + ' (' + createdt +') by ' + designer;
  259. break;
  260.  
  261. }
  262. }
  263. }
  264. else
  265. {
  266. day1t = teststring3.slice(0,PlaceSpace );
  267. var PlaceSepSM = day1t.indexOf("-");
  268. var PlaceSepMY = day1t.lastIndexOf("-");
  269. let caughtday1;
  270. let caughtxpy1;
  271. let displayday1;
  272. let msgday1;
  273. if(PlaceSepSM > 0)
  274. {
  275. dayte = '0'+ teststring3.slice(0,PlaceSepSM);
  276. day = dayte.slice(-2);
  277. lengthS = PlaceSepMY- PlaceSepSM -1;
  278. if(lengthS >= 1)
  279. {
  280. let blncont = false;
  281. var mntte = '0'+ teststring3.substr(PlaceSepSM + 1, lengthS);
  282. mnt = mntte.slice(-2);
  283. lengthS = PlaceSpace - PlaceSepMY-1;
  284. var year = teststring3.substr(PlaceSepMY+ 1, lengthS);
  285. search = year + mnt + day ;
  286.  
  287.  
  288. for (let i = 0; i < dLen; i++)
  289. {
  290. rdat = dates[i][0] ;
  291. caughtday1 = dates[i][2];
  292. caughtxpy1 = dates[i][1];
  293. displayday1 = dates[i][3];
  294. blncont = 'first';
  295. if(rdat == search)
  296. {
  297. blncont = 'true';
  298. break;
  299. }
  300. if(rdat < search)
  301. {
  302. blncont = 'closest';
  303. break;
  304. }
  305. }
  306. if(blncont == 'true')
  307. {
  308. msgday1 = ' ';
  309. }
  310. if(blncont == 'closest')
  311. {
  312. msgday1 = 'No data has been found for the date ' + day1t + ' the closest earlier day is ' + displayday1 + '. ';
  313. }
  314. if(blncont == 'first')
  315. {
  316. msgday1 = 'No data has been found for the date ' + day1t + '. First known date is ' + displayday1 + '. ';
  317. }
  318. }
  319. else
  320. {
  321. caughtday1 = dates[dLen-1][2];
  322. caughtxpy1 = dates[dLen-1][1];
  323. displayday1 = dates[dLen-1][3];
  324. msgday1 = 'No data has been found for the date ' + day1t + '. First known date is ' + displayday1 + '. ';
  325. message = msgday1;
  326. }
  327. }
  328. else
  329. {
  330. caughtday1 = dates[dLen-1][2];
  331. caughtxpy1 = dates[dLen-1][1];
  332. displayday1 = dates[dLen-1][3];
  333. msgday1 = 'No data has been found for the date ' + day1t + '. First known date is ' + displayday1 + '. ';
  334.  
  335. }
  336. day2t = teststring3.slice(PlaceSpace+1 );
  337. var PlaceSepSM2 = day2t.indexOf("-");
  338. var PlaceSepMY2 = day2t.lastIndexOf("-");
  339. let search2;
  340. let msgday2;
  341. let blncont2 = false;
  342. let caughtday2;
  343. let caughtxpy2;
  344. let displayday2;
  345. var RowI3 = 0;
  346.  
  347. if(PlaceSepSM2 > 0)
  348. {
  349. day2te = '0'+ day2t.slice(0,PlaceSepSM2);
  350. day2 = day2te.slice(-2);
  351. lengthS2 = PlaceSepMY2 - PlaceSepSM2-1 ;
  352. if(lengthS2 >= 1)
  353. {
  354. var mntte2 = '0'+ day2t.substr(PlaceSepSM2 + 1, lengthS2);
  355. mnt2 = mntte2.slice(-2);
  356. lengthS2 = PlaceSepMY2;
  357. var year2 = day2t.substr(PlaceSepMY2+1, 4);
  358. search2 = year2 + mnt2 + day2 ;
  359. for (let i = 0; i < dLen; i++)
  360. {
  361. rdat2 = dates[i][0] ;
  362. caughtday2 = dates[i][2];
  363. caughtxpy2 = dates[i][1];
  364. displayday2 = dates[i][3];
  365. RowI3 = i;
  366. if(rdat2 == search2)
  367. {
  368. blncont2 = 'true';
  369.  
  370. break;
  371. }
  372. else
  373. {
  374. if(rdat2 < search2)
  375. {
  376. blncont2 = 'closest';
  377. break;
  378. }
  379. else
  380. {
  381. caughtday2 = dates[0][2];
  382. caughtxpy2 = dates[0][1];
  383. displayday2 = dates[0][3];
  384. blncont2 = 'last';
  385. RowI3 = 0;
  386. }
  387. }
  388. }
  389. if(blncont2 == 'true')
  390. {
  391. msgday2 = ' ';
  392. }
  393. if(blncont2 == 'closest')
  394. {
  395. msgday2 = 'No data has been found for the date ' + day2t + ' the closest earlier day is ' + displayday2 + '. ';
  396. }
  397. if(blncont2 == 'last')
  398. {
  399. msgday2 = 'No data has been found for the date ' + day2t + '. Last known date is ' + displayday2 + '. ';
  400. }
  401. }
  402. else
  403. {
  404. caughtday2 = dates[0][2];
  405. caughtxpy2 = dates[0][1];
  406. displayday2 = dates[0][3];
  407. msgday2 = 'No data has been found for the date ' + day2t + '. Last known date is ' + displayday1 + '. ';
  408. RowI3 = 0;
  409. }
  410. }
  411. else
  412. {
  413. caughtday2 = dates[0][2];
  414. caughtxpy2 = dates[0][1];
  415. displayday2 = dates[0][3];
  416. msgday2 = 'No data has been found for the date ' + day2t + '. Last known date is ' + displayday1 + '. ';
  417. }
  418. var countsting1 = caughtday1.replaceAll(".", "");
  419. var countsting2 = caughtday2.replaceAll(".", "");
  420. var intday1 = parseInt(countsting1);
  421. var intday2 = parseInt(countsting2);
  422. var Iresult = Math.abs(intday1 - intday2);
  423. var strIresult = Iresult.toLocaleString('nl-NL', { minimumFractionDigits: 0 });
  424. var xpcountsting1 = caughtxpy1.replaceAll(".", "");
  425. var xpcountsting2 = caughtxpy2.replaceAll(".", "");
  426. var xpintday1 = parseInt(xpcountsting1);
  427. var xpintday2 = parseInt(xpcountsting2);
  428. var xpIresult = Math.abs(xpintday1 - xpintday2);
  429. var strxpIresult = xpIresult.toLocaleString('nl-NL', { minimumFractionDigits: 0 });
  430.  
  431. var countsting1_s3 ;
  432. countsting1_s3 = dates[RowI3][2].replaceAll(".", "");
  433. var xpIresult_s3 = Math.abs(goal-countsting1_s3);
  434. var strxpIresult_s3 = xpIresult_s3.toLocaleString('nl-NL', { minimumFractionDigits: 0 });
  435.  
  436. var date_Str_s_s3 = dates[RowI3][0].toString();
  437. var date_Str_s3 = date_Str_s_s3.slice(0, 4) + '-' + date_Str_s_s3.slice(4, 6) + '-' + date_Str_s_s3.slice(6, 8);
  438. Date_s3 = new Date(date_Str_s3);
  439. var Difference_In_Time3 = goal_date.getTime() - Date_s3.getTime();
  440. var Difference_In_Days3 = Math.ceil(Difference_In_Time3 / (1000 * 3600 * 24));
  441.  
  442. var p_per_day3 = Math.ceil(xpIresult_s3 / Difference_In_Days3);
  443.  
  444. message = message_start + msgday1 + msgday2 + strIresult + message_middle_p_1 + strxpIresult + message_middle_p_2 + displayday1 + message_middle_p_3 + displayday2;
  445. message = message + ". " + strxpIresult_s3 + message_goal + Difference_In_Days3 + message_goal_2 + p_per_day3 + ' pókemon';
  446.  
  447. }
  448. }
  449. message;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement