Advertisement
SilkKheldar

XPv4

Jan 13th, 2023 (edited)
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let version  = "5";
  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.   [20230113,"604.654.064","449.033",  "13 January 2023","13-1-2023"],
  9.   [20230111,"600.012.264","448.067",  "11 January 2023","11-1-2023"],
  10.   [20230110,"594.890.943","447.824",  "10 January 2023","10-1-2023"],
  11.   [20230107,"588.290.943","445.341",  "7 January 2023","7-1-2023"],
  12.   [20230103,"579.420.623","442.897",  "3 January 2023","3-1-2023"],
  13.   [20221231,"573.717.364","441.520",  "31 december 2022","31-12-2022"],
  14.   [20221224,"561.297.654","437.787",  "24 december 2022","24-12-2022"],
  15.   [20221217,"549.454.877","432.944",  "17 december 2022","17-12-2022"],
  16.   [20221215,"546.606.622","431.594",  "15 december 2022","15-12-2022"],
  17.   [20221212,"542.739.772","429.675",  "12 december 2022","12-12-2022"],
  18.   [20221211,"541.115.962","429.003",  "11 december 2022","11-12-2022"],
  19.   [20221201,"531.730.536","423.913",   "1 december 2022", "1-12-2022"],
  20.   [20221128,"527.175.060","421.561",  "28 November 2022","28-11-2022"],
  21.   [20221127,"523.358.680","420.622",  "27 November 2022","27-11-2022"],
  22.   [20221126,"519.494.270","419.837",  "26 November 2022","26-11-2022"],
  23.   [20221121,"517.506.849","417.538",  "21 November 2022","21-11-2022"],
  24.   [20221114,"514.158.392","415.227",  "14 November 2022","14-11-2022"],
  25.   [20221110,"511.527.778","412.218",  "10 November 2022","10-11-2022"],
  26.   [20221108,"508.794.503","410.571",   "8 November 2022", "8-11-2022"],
  27.   [20221105,"505.744.513","408.653",   "5 November 2022", "5-11-2022"],
  28.   [20221031,"500.007.208","405.203",   "31 Oktober 2022","31-10-2022"],
  29.   [20221020,"490.340.413","400.000",   "20 October 2022","20-10-2022"],
  30.   [20221017,"486.430.211","398.075",   "17 October 2022","17-10-2022"],
  31.   [20221012,"478.551.790","394.481",   "12 October 2022","12-10-2022"],
  32.   [20221002,"468.731.478","388.412",    "2 October 2022", "2-10-2022"],
  33.   [20220924,"463.865.718","384.043", "24 September 2022", "24-9-2022"],
  34.   [20220905,"447.067.085","370.417",  "5 September 2022",  "5-9-2022"],
  35.   [20220904,"445.448.705","369.688",  "4 September 2022",  "4-9-2022"]
  36. ];
  37.  
  38. message_start     = "/me ";
  39. message_middle_1  = " xp ";
  40. message_middle_2  = " pókemon caught on ";
  41. message_middle_p_1 = " pókemon were caught and ";
  42. message_middle_p_2 = " xp was earned between ";
  43. message_middle_p_3 = " and ";
  44.  
  45. let message;
  46.  
  47. if (q == null||q=="")
  48. {
  49.   message = message_start + dates[0][1]+ message_middle_1 + dates[0][2] + message_middle_2 + dates[0][3];
  50. }
  51. else
  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.         search      = year + mnt + day ;
  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.           blncont = 'first';
  173.           if(rdat == search)
  174.           {
  175.             blncont = 'true';
  176.             break;
  177.           }
  178.           if(rdat < search)
  179.           {
  180.             blncont     = 'closest';
  181.             break;
  182.           }
  183.         }
  184.         if(blncont == 'true')
  185.         {
  186.           msgday1 =  ' ';
  187.         }
  188.         if(blncont == 'closest')
  189.         {
  190.           msgday1 = 'No data has been found for the date ' + day1t + ' the closest earlier day is ' + displayday1 + '. ';
  191.         }
  192.         if(blncont == 'first')
  193.         {
  194.           msgday1 =   'No data has been found for the date ' + day1t + '.  First known date is ' + displayday1 + '. ';
  195.         }
  196.       }
  197.       else
  198.       {
  199.         caughtday1  = dates[dLen-1][2];
  200.         caughtxpy1  = dates[dLen-1][1];
  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.     else
  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.     }  
  214.     day2t = teststring3.slice(PlaceSpace+1 );
  215.     var PlaceSepSM2 = day2t.indexOf("-");
  216.     var PlaceSepMY2 = day2t.lastIndexOf("-");
  217.     let search2;
  218.     let msgday2;
  219.     let blncont2   = false;
  220.     let caughtday2;
  221.     let caughtxpy2;
  222.     let displayday2;
  223.     if(PlaceSepSM2 > 0)
  224.     {
  225.       day2te =  '0'+ day2t.slice(0,PlaceSepSM2);
  226.       day2 = day2te.slice(-2);
  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;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement