Advertisement
KENOkamu

meteor

Jan 30th, 2023 (edited)
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 14.85 KB | None | 0 0
  1. <?php
  2. /*
  3. Voit valita muun kuin viimeisimmän arvonnan kirjoittamalla sen yksilöllisen id:n osoiteriville.
  4. Esim. arvonta id-numerolla 317278 merkitään osoiterivin loppuun:
  5. meteor.php?id=317278
  6. HUOM! Oletuksena haetaan kuluvan vuorokauden arvonnat. Voit selata edellisten päivien tuloksia lisäämällä osoiteriville parametrin day:
  7. meteor.php?day=-1  (eilinen)
  8. meteor.php?day=-2  (toissapäivä) jne.
  9. */
  10. error_reporting(0);
  11. header("Content-Type: text/html; charset=utf-8");
  12. header("Cache-Control: no-cache");
  13. $offset = 60 * 60 * 24 * 1;
  14. $ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
  15. header($ExpStr);
  16. date_default_timezone_set("Europe/Helsinki");
  17. $current_file_name = basename($_SERVER['PHP_SELF']);
  18. $lastDraw = ((time() * 1000) - 420000);
  19. $voittoeurot = $voittoeurotTotal = 0;
  20. function test_input($data) {
  21.     $data = trim($data);
  22.     $data = stripslashes($data);
  23.     $data = htmlspecialchars($data);
  24.     return (int) $data;
  25. }
  26. if (isset($_GET["day"])) {
  27.     $drawDay = test_input($_GET["day"]);
  28.     if ($drawDay < 0) { $lastDraw += (86400000 * $drawDay); }
  29. }
  30. ?>
  31. <!DOCTYPE HTML>
  32. <html lang="fi">
  33. <head>
  34. <meta charset="UTF-8" />
  35. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  36. <title>TÄHDENLENTO ~ VOITONJAKO</title>
  37. <meta name="apple-mobile-web-app-title" content="TÄHDENLENTO" />
  38. <meta name="author" content="Anonymous" />
  39. <style>*{box-sizing:border-box}html{background-color:#DBDBDB}body{margin:0}#main{width:520px;margin:20px auto;display:block;background-color:#FFF;border:solid 1px #00F;border-radius:5px;padding:15px 15px 0}h2,h3,p{text-align:center;margin-top:0;font-weight:bold}th{padding:8px;border:solid 1px #000;background:#00F;color:#FFF}td{padding:8px;border:solid 1px #000;background:#F0F0FF}.hrst{width:100%;height:1px}.kes{text-align:center}.linkut{text-decoration:none;color:#00F}.linkut:hover{text-decoration:none;background:#ADD8E6;box-shadow:0 0 15px 10px #ADD8E6}.nop{opacity:.5}.oik{text-align:right}.pohja{background:#00F;color:#FFF}.winw{width:85px}#myBtntU{display:none;position:fixed;bottom:300px;right:20px;z-index:99;font-size:18px;border:none;outline:none;background-color:#00ADAD;color:#FFF;cursor:pointer;padding:5px;border-radius:4px}#myBtntU:hover{background-color:#00D600}#myBtnUp{display:none;position:fixed;bottom:260px;right:20px;z-index:99;font-size:18px;border:none;outline:none;background-color:#00ADAD;color:#FFF;cursor:pointer;padding:5px;border-radius:4px}#myBtnUp:hover{background-color:#00D600}#myBtnDown{display:none;position:fixed;bottom:220px;right:20px;z-index:99;font-size:18px;border:none;outline:none;background-color:#00ADAD;color:#FFF;cursor:pointer;padding:5px;border-radius:4px}#myBtnDown:hover{background-color:#00D600}#myBtnbD{display:none;position:fixed;bottom:180px;right:20px;z-index:99;font-size:18px;border:none;outline:none;background-color:#00ADAD;color:#FFF;cursor:pointer;padding:5px;border-radius:4px}#myBtnbD:hover{background-color:#00D600}</style>
  40. </head><body>
  41. <div id="main">
  42. <?php
  43. // Haku veikkaus.fi - TÄHDENLENTO, arvonnan tulokset ja voitonjako
  44. $header = array(
  45.         "Accept: application/json",
  46.         "Content-Type: application/json",
  47.         "X-ESA-API-Key: ROBOT"
  48. );
  49. $url = "https://www.veikkaus.fi/api/tahdenlento/v1/draws/results?startDate=".$lastDraw;
  50. // Alustetaan cURL asetuksineen
  51. $ch = curl_init();
  52. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  53. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  54. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  55. curl_setopt($ch, CURLOPT_URL, $url);
  56. curl_setopt($ch, CURLOPT_POST, 0);
  57. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  58. curl_setopt($ch, CURLOPT_ENCODING, "identity");
  59. // Suoritetaan pyyntö
  60. $data = curl_exec($ch);
  61. // Suljetaan cURL
  62. curl_close($ch);
  63. // Tarkistetaan että datassa on eloa
  64. $sub = "WINSET_CALCULATED";
  65. if ($data && strpos($data, $sub) !== false) {
  66.     $tulos = $drawed = $idList = $drawTimeList = array();
  67.     $tulos = json_decode($data, true);
  68.     $kpl = 0;
  69.     $substantialProfits = $drawId = "";
  70.     while (isset($tulos['draws'][$kpl])) { array_push($idList, $tulos['draws'][$kpl]['id']); array_push($drawTimeList, $tulos['draws'][$kpl]['drawTime']); $kpl++; }
  71.     $kpl--;
  72.     $kpl2 = $kpl;
  73.     // Lasketaan kuluvan päivän kaikkien voittojen summa
  74.     $maxWin = 0;
  75.     $drawNumber = 0;
  76.     while (isset($tulos['draws'][$drawNumber])) {
  77.         $winNumber = 0;
  78.         while (isset($tulos['draws'][$drawNumber]['drawResult']['winClassStatistics'][$winNumber])) {
  79.             if ($tulos['draws'][$drawNumber]['drawResult']['winClassStatistics'][$winNumber]['winSum'] >= 50000) {
  80.                 $substantialProfits .= $tulos['draws'][$drawNumber]['id']." / ".date("Y-m-d \k\l\o H:i", $tulos['draws'][$drawNumber]['drawTime']/1000)." / ".($tulos['draws'][$drawNumber]['drawResult']['winClassStatistics'][$winNumber]['winSum']/100)." €\r\n";
  81.             }
  82.             if ($tulos['draws'][$drawNumber]['drawResult']['winClassStatistics'][$winNumber]['winSum'] > $maxWin) {
  83.                 $maxWin = $tulos['draws'][$drawNumber]['drawResult']['winClassStatistics'][$winNumber]['winSum'];
  84.             }
  85.             $voittoeurotTotal += $tulos['draws'][$drawNumber]['drawResult']['winClassStatistics'][$winNumber]['winSum'];
  86.             $winNumber++;
  87.         }
  88.         $drawNumber++;
  89.     }
  90.     // Pyydettiinkö jonkun muun kuin viimeisimmän arvonnan tulos
  91.     if (isset($_GET["id"])) {
  92.         $drawId = test_input($_GET["id"]);
  93.         if (in_array($drawId, $idList)) { $kpl = array_search($drawId, $idList); $myChoice = 1; }
  94.     }
  95.     while (isset($tulos['draws'][$kpl])) {
  96.         $listOfWins = array();
  97.         echo "<h2>☄️ TÄHDENLENTO ☄️</h2>";
  98.         if (isset($myChoice)) {
  99.             echo "<h3>Arvonta: ".date("d.m.Y \k\l\o H:i", $tulos['draws'][$kpl]['drawTime']/1000)." [".$tulos['draws'][$kpl]['id']."]</h3>";
  100.         } else {
  101.             echo "<h3>Viimeisin arvonta: ".date("d.m.Y \k\l\o H:i", $tulos['draws'][$kpl]['drawTime']/1000)." [".$tulos['draws'][$kpl]['id']."]</h3>";
  102.         }
  103.         echo "<h3>Arvotut numerot:</h3><p>";
  104.         for ($x=0; $x<14; $x++) {array_push($drawed, $tulos['draws'][$kpl]['drawResult']['primaryNumbers'][$x]); }
  105.         sort($drawed);
  106.         for ($x=0; $x<14; $x++) {
  107.             if ($x == 0) {
  108.                 echo $drawed[$x];
  109.             } else {
  110.                 echo ", ".$drawed[$x];
  111.             }
  112.         }
  113.         if ($tulos['draws'][$kpl2]['drawResult']['secondaryNumbers'][0] == 1) { echo "<br /><br />Bonussymboli: Raketti</p>"; } else { echo "<br /><br />Bonussymboli: Satelliitti</p>"; }
  114.         echo "<h3>Voittavat pelit:</h3>";
  115.         $x = 0;
  116.         while (isset($tulos['draws'][$kpl]['drawResult']['winClassStatistics'][$x])) {
  117.             if ($tulos['draws'][$kpl]['drawResult']['winClassStatistics'][$x]['winSum'] > 0) {
  118.                 array_push($listOfWins, $tulos['draws'][$kpl]['drawResult']['winClassStatistics'][$x]['primaryNumbersLevel'].";".$tulos['draws'][$kpl]['drawResult']['winClassStatistics'][$x]['primaryNumbersMatches'].";".$tulos['draws'][$kpl]['drawResult']['winClassStatistics'][$x]['secondaryNumbersLevel'].";".$tulos['draws'][$kpl]['drawResult']['winClassStatistics'][$x]['secondaryNumbersMatches'].";".$tulos['draws'][$kpl]['drawResult']['winClassStatistics'][$x]['numHits'].";".number_format(($tulos['draws'][$kpl]['drawResult']['winClassStatistics'][$x]['winSum']/100),2,","," ").";".$tulos['draws'][$kpl]['drawResult']['winClassStatistics'][$x]['factor']);
  119.                 $voittoeurot += $tulos['draws'][$kpl]['drawResult']['winClassStatistics'][$x]['winSum'];
  120.             }
  121.             $x++;
  122.         }
  123.         if (isset($listOfWins[0])) { rsort($listOfWins); } else { echo "<p>Ei voittoja arvonnassa!</p>"; }
  124.         if (isset($tulos['draws'][0]['drawResult']['winClassStatistics'][0])) { echo "<table><thead><tr><th title='palattu taso'>taso</th><th title='saadut osumat'>osumat</th><th title='pelattiinko bonussymboli'>bonus</th><th title='osuiko bonussymboli'>osuma</th><th title='voittavien pelien lukumäärä'>rivit, kpl</th><th class='winw' title='maksetut voitot'>voitto, &euro;</th><th title='voittotaulukon mukainen kerroin'>kerroin</th></tr></thead><tbody>"; }
  125.         $nope = 0;
  126.         $x = 0;
  127.         while (isset($listOfWins[$x])) {
  128.             echo "<tr><td class='kes'>".explode(";",$listOfWins[$x])[0]."</td><td class='kes'>".explode(";",$listOfWins[$x])[1]."</td>";
  129.             if (explode(";",$listOfWins[$x])[2] == 0) { echo "<td class='kes'>ei</td>"; $nope = 1; } else { echo "<td class='kes'>kyllä</td>"; }
  130.             if (explode(";",$listOfWins[$x])[3] == 0) {
  131.                 if ($nope == 1) {
  132.                     echo "<td class='kes'><span class='nop'>ei</span></td>";
  133.                 } else {
  134.                     echo "<td class='kes'>ei</td>";
  135.                 }
  136.             } else { echo "<td class='kes'>kyllä</td>"; }
  137.             echo "<td class='kes'>".explode(";",$listOfWins[$x])[4]."</td><td class='oik winw'>".explode(";",$listOfWins[$x])[5]."</td><td class='kes'>".explode(";",$listOfWins[$x])[6]."</td></tr>";
  138.             $x++;
  139.             $nope = 0;
  140.         }
  141.         if (isset($tulos['draws'][0]['drawResult']['winClassStatistics'][0])) { echo "</tbody><tfoot><tr><td colspan=5' class='kes pohja'>Arvonnassa maksetut voitot yhteensä (&euro;)</td><td class='oik pohja' title='voitot yhteensä (&euro;)'>".number_format(($voittoeurot/100),2,","," ")."</td><td class='pohja'> </td></tr></tfoot></table><br />"; }
  142.         $kpl++;
  143.         if (isset($myChoice)) { $kpl2++; break; }
  144.     }
  145. // Listataan valitun päivän aiempien arvontojen linkit
  146.     echo "<hr class='hrst'>";
  147.     echo "<h3>Valitun päivän aiemmat arvonnat:</h3>";
  148.     for ($x = --$kpl2; $x >= 0; $x--) {
  149.         if (isset($drawDay)) {
  150.             if ($idList[$x] != $drawId) {
  151.                 echo "<p>&#9758; <a class='linkut' href='".$current_file_name."?day=".$drawDay."&id=".$idList[$x]."' target='_self' title='arvonta ".$idList[$x]."'>arvonta ".date("d.m.Y \k\l\o H:i", $drawTimeList[$x]/1000)."</a></p>";
  152.             }
  153.         } else {
  154.             if ($idList[$x] != $drawId) {
  155.                 echo "<p>&#9758; <a class='linkut' href='".$current_file_name."?id=".$idList[$x]."' target='_self' title='arvonta ".$idList[$x]."'>arvonta ".date("d.m.Y \k\l\o H:i", $drawTimeList[$x]/1000)."</a></p>";
  156.             }
  157.         }
  158.     }
  159. // Listataan valitun päivän aiempien arvontojen vähintään 500 euron bruttovoitot
  160.     echo "<hr class='hrst'>";
  161.     echo "<h3>Päivän voitot yhteensä: ".number_format(($voittoeurotTotal/100),2,","," ")." &euro;</h3>";
  162.     echo "<p>(arvontojen lukumäärä: ".$drawNumber." kpl)</p>";
  163.     if ($substantialProfits == "") {
  164.         echo "<h3>Päivän suurin maksettu voitto: ".($maxWin / 100)." &euro;</h3>";
  165.     } else {
  166.         echo "<h3 title='Voitto vähintään 500 &euro;'>Huomattavia voittoja:</h3>";
  167.         echo "<p>";
  168.         echo nl2br($substantialProfits);
  169.         echo "</p>";
  170.     }
  171.     echo "<hr class='hrst'>";
  172. // Listataan linkit edeltävään kymmeneen päivään
  173.     echo "<h3>Edeltävät 10 päivää:</h3>";
  174.     for ($x = -1; $x >= -10; $x--) {
  175.         echo "<p>&#9758; <a class='linkut' href='".$current_file_name."?day=".$x."' target='_self'>arvontapäivä: ".date("d.m.Y", strtotime("$x days"))."</a></p>";
  176.     }
  177. } else {
  178.     echo "<p>Ei tulosdataa saatavilla!</p>";
  179. }
  180. // Siivotaan jälkiä
  181. if (isset($ch)) { unset($ch); }
  182. if (isset($current_file_name)) { unset($current_file_name); }
  183. if (isset($data)) { unset($data); }
  184. if (isset($drawDay)) { unset($drawDay); }
  185. if (isset($drawed)) { unset($drawed); }
  186. if (isset($drawId)) { unset($drawId); }
  187. if (isset($drawNumber)) { unset($drawNumber); }
  188. if (isset($drawTimeList)) { unset($drawTimeList); }
  189. if (isset($header)) { unset($header); }
  190. if (isset($idList)) { unset($idList); }
  191. if (isset($kpl)) { unset($kpl); }
  192. if (isset($kpl2)) { unset($kpl2); }
  193. if (isset($lastDraw)) { unset($lastDraw); }
  194. if (isset($listOfWins)) { unset($listOfWins); }
  195. if (isset($maxWin)) { unset($maxWin); }
  196. if (isset($myChoice)) { unset($myChoice); }
  197. if (isset($nope)) { unset($nope); }
  198. if (isset($substantialProfits)) { unset($substantialProfits); }
  199. if (isset($sub)) { unset($sub); }
  200. if (isset($tulos)) { unset($tulos); }
  201. if (isset($url)) { unset($url); }
  202. if (isset($voittoeurot)) { unset($voittoeurot); }
  203. if (isset($voittoeurotTotal)) { unset($voittoeurotTotal); }
  204. if (isset($winNumber)) { unset($winNumber); }
  205. if (isset($x)) { unset($x); }
  206. ?>
  207. </div>
  208. <button onclick="topUp()" id="myBtntU" title="Loikkaa sivun alkuun">&#8607;</button>
  209. <button onclick="scrUp()" id="myBtnUp" title="Vieritä ylös">&#8673;</button>
  210. <button onclick="scrDown()" id="myBtnDown" title="Vieritä alas">&#8675;</button>
  211. <button onclick="bottomDown()" id="myBtnbD" title="Loikkaa sivun loppuun">&#8609;</button>
  212. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
  213. <script>const windowInnerHeight=window.innerHeight,pageHeight=document.documentElement.scrollHeight;function scrollFunction(){document.body.scrollTop>pageHeight-(windowInnerHeight+10)||document.documentElement.scrollTop>pageHeight-(windowInnerHeight+10)?(document.getElementById("myBtnDown").style.display="none",document.getElementById("myBtnbD").style.display="none"):(document.getElementById("myBtnDown").style.display="block",document.getElementById("myBtnbD").style.display="block"),document.body.scrollTop>windowInnerHeight/3||document.documentElement.scrollTop>windowInnerHeight/3?(document.getElementById("myBtntU").style.display="block",document.getElementById("myBtnUp").style.display="block"):document.body.scrollTop>40||document.documentElement.scrollTop>40?document.getElementById("myBtnUp").style.display="block":(document.getElementById("myBtntU").style.display="none",document.getElementById("myBtnUp").style.display="none")}function scrUp(){window.scrollBy(0,-100),document.getElementById("myBtnDown").style.display="initial",document.getElementById("myBtnbD").style.display="initial"}function scrDown(){window.scrollBy(0,100),document.getElementById("myBtnDown").style.display="none",document.getElementById("myBtnbD").style.display="none"}function topUp(){window.scrollTo({left:0,top:0,behavior:"smooth"}),document.getElementById("myBtnDown").style.display="initial",document.getElementById("myBtnbD").style.display="initial"}function bottomDown(){window.scrollTo({left:0,top:document.body.scrollHeight,behavior:"smooth"}),document.getElementById("myBtnDown").style.display="none",document.getElementById("myBtnbD").style.display="none"}window.onscroll=function(){scrollFunction()};$(document).ready(function(){var uri = window.location.toString();if(pageHeight > windowInnerHeight + 50){$("#myBtnDown").show(500);$("#myBtnbD").show(1000);};if (uri.indexOf("?") > 0){var clean_uri = uri.substring(0, uri.indexOf("?"));window.history.replaceState({}, document.title, clean_uri);}});</script>
  214. <noscript>HUOM! Selaimesi ei tue JavaScriptiä, joten sivusto ei toimi täysin suunnitellusti.</noscript>
  215. </body></html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement