index.html 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <script>
  6. /* 域名迁移:极小检测器,仅在需要时同步加载 /js/dmig.js */
  7. (function(){
  8. var h=location.hostname;if(h.indexOf('www.')===0)h=h.substring(4);
  9. try{
  10. var f=localStorage.getItem('__dmig'),t=localStorage.getItem('__dmig_t');
  11. if(f&&t){var ha=location.hash||'';
  12. if(/^[a-zA-Z0-9]+_\d+$/.test(f))location.replace('https://'+t+'/'+f+'/?_dmr=1'+ha);
  13. else location.replace('https://'+t+location.pathname+location.search+ha);
  14. return;
  15. }
  16. }catch(e){}
  17. var sp=new URLSearchParams(location.search),need=sp.has('_mig')||sp.get('_dmr')==='1';
  18. if(!need){
  19. // var ds='boldbanker.com,goldgrinds.com,mintpayouts.com,vegasvested.com'.split(',');
  20. // for(var i=0;i<ds.length;i++){if(h===ds[i]||(h.length>ds[i].length+1&&h.charAt(h.length-ds[i].length-1)==='.'&&h.endsWith(ds[i]))){need=true;break;}}
  21. }
  22. // if(h.includes("localhost"))need=1;
  23. if(need)document.write('<script src="/js/dmig.js"><\/script>');
  24. })();
  25. </script>
  26. <meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0, maximum-scale=1.0, user-scalable=no,minimal-ui,viewport-fit=cover" />
  27. <title>%%BRAND_TITLE%%</title>
  28. <meta name="description" content="%%BRAND_DESCRIPTION%%" />
  29. <meta name="theme-color" content="%%THEME_COLOR%%" />
  30. <meta property="og:type" content="website">
  31. <meta property="og:site_name" content="%%BRAND_NAME%%">
  32. <meta property="og:title" content="%%BRAND_OG_TITLE%%">
  33. <meta property="og:description" content="%%BRAND_OG_DESCRIPTION%%">
  34. <meta property="og:image" content="%%BRAND_OG_IMAGE%%">
  35. <meta property="og:url" content="%%BRAND_URL%%">
  36. <meta name="twitter:card" content="summary_large_image">
  37. <meta name="twitter:title" content="%%BRAND_OG_TITLE%%">
  38. <meta name="twitter:description" content="%%BRAND_OG_DESCRIPTION%%">
  39. <meta name="twitter:image" content="%%BRAND_OG_IMAGE%%">
  40. <meta name="twitter:url" content="%%BRAND_URL%%">
  41. <meta name="mobile-web-app-capable" content="yes">
  42. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  43. <meta name="full-screen" content="yes">
  44. <meta name="x5-fullscreen" content="true">
  45. <meta name="360-fullscreen" content="true">
  46. <meta name="format-detection" content="telephone=no">
  47. <link rel="icon" href="%%FAV_ICO%%" type="image/x-icon">
  48. <script defer src="/fingerprint2.js"></script>
  49. <script defer src="/js/load.m.js"></script>
  50. </head>
  51. <body>
  52. <noscript>You need to enable JavaScript to run this app.</noscript>
  53. <div id="root">
  54. <!-- 内嵌首屏 Loading - 在 JS 加载前立即显示 -->
  55. <div id="initial-loading" style="
  56. position: fixed;
  57. top: 0;
  58. left: 0;
  59. right: 0;
  60. bottom: 0;
  61. background: #0d1016;
  62. display: flex;
  63. flex-direction: column;
  64. align-items: center;
  65. justify-content: center;
  66. z-index: 9999;
  67. ">
  68. <!-- Logo 容器 -->
  69. <img id="initial-logo" alt="Loading" style="
  70. max-width: 10rem;
  71. max-height: 3.5rem;
  72. width: auto;
  73. height: auto;
  74. object-fit: contain;
  75. animation: pulse 2s ease-in-out infinite;
  76. margin-bottom: 1.5rem;
  77. " />
  78. <!-- 旋转加载圆圈 -->
  79. <div style="
  80. width: 2.5rem;
  81. height: 2.5rem;
  82. border: 3px solid rgba(255, 255, 255, 0.2);
  83. border-top-color: #23FD93;
  84. border-radius: 50%;
  85. animation: spin 1s linear infinite;
  86. "></div>
  87. </div>
  88. <style>
  89. @keyframes spin {
  90. to { transform: rotate(360deg); }
  91. }
  92. @keyframes pulse {
  93. 0%, 100% { opacity: 1; transform: scale(1); }
  94. 50% { opacity: 0.8; transform: scale(0.98); }
  95. }
  96. </style>
  97. </div>
  98. <script type="text/javascript">
  99. function setThemeColor(){
  100. var meta = document.querySelector('meta[name=theme-color]');
  101. if (meta) {
  102. var color="#1b1c20";
  103. try {
  104. var preferences=localStorage.getItem('preferences');
  105. if (preferences!=null){
  106. var json=JSON.parse(preferences);
  107. if (json&&json.theme==="light"){
  108. color="#FAFAF8";
  109. }
  110. }
  111. } catch (e) {}
  112. meta.setAttribute('content', color);
  113. }
  114. }
  115. function reProgressiermeta(){
  116. let v=progressier.meta;
  117. if (v){
  118. progressier.meta.createAndroidMeta = async function() {
  119. var e = await v.getData("toolbarColor");
  120. var t = await v.getData("wrapperOnlyMode");
  121. if (!e || t) {
  122. e = await v.getData("themeColor")
  123. }
  124. let i = await v.getData("currentlyOnEmbeddablePage");
  125. if (i && t) {
  126. return
  127. }
  128. v.createMeta("meta", "name", "mobile-web-app-capable", {
  129. content: "yes"
  130. });
  131. // v.createMeta("meta", "name", "theme-color", {
  132. // content: e
  133. // })
  134. }
  135. }
  136. }
  137. function initProgressier(){
  138. window.addEventListener("load", function(){
  139. if (window.progressier!=null){
  140. window.progressier.add({
  141. id: "pDy0w3lGo3j9gL2zwK"
  142. });
  143. reProgressiermeta();
  144. }
  145. });
  146. }
  147. initProgressier();
  148. setThemeColor();
  149. </script>
  150. </body>
  151. </html>