q78kgblog 0.0.0-1730608372556 → 0.0.0-1730686573410

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/404.html +1 -933
  2. package/about/index.html +1 -1085
  3. package/archives/2023/02/index.html +1 -933
  4. package/archives/2023/04/index.html +1 -933
  5. package/archives/2023/05/index.html +1 -933
  6. package/archives/2023/08/index.html +1 -933
  7. package/archives/2023/09/index.html +1 -933
  8. package/archives/2023/index.html +1 -933
  9. package/archives/2024/01/index.html +1 -933
  10. package/archives/2024/02/index.html +1 -933
  11. package/archives/2024/index.html +1 -933
  12. package/archives/index.html +1 -933
  13. package/assets/css/APlayer.min.css +1 -3
  14. package/assets/js/APlayer.min.js +154 -2
  15. package/assets/js/Meting.min.js +3 -1
  16. package/atom.xml +9 -9
  17. package/baidusitemap.xml +16 -16
  18. package/bangumis/index.html +1 -1055
  19. package/bigpie/index.html +1 -705
  20. package/categories/Hexo/index.html +1 -945
  21. package/categories/index.html +1 -701
  22. package/categories//345/271/264/347/273/210/346/200/273/347/273/223/index.html +1 -945
  23. package/categories//347/264/240/346/235/220/index.html +1 -945
  24. package/categories//351/227/262/350/201/212/346/235/202/350/260/210/index.html +1 -945
  25. package/content.json +1 -1
  26. package/css/404page.css +1 -1
  27. package/css/stylessimple.css +1 -1
  28. package/css/swiper.min.css +1 -701
  29. package/fcircle/index.html +1 -724
  30. package/fontawesome/index.html +1 -707
  31. package/index.html +1 -1078
  32. package/js/aplayersave.js +1 -1
  33. package/js/baiduhistory.js +1 -1
  34. package/js/browser.js +1 -1
  35. package/js/calendar.js +1 -1
  36. package/js/cate.js +1 -1
  37. package/js/commentBarrage.js +13 -13
  38. package/js/commentsCount.js +1 -1
  39. package/js/copy.js +1 -1
  40. package/js/countup.js +1 -1
  41. package/js/cursor.js +1 -1
  42. package/js/day.js +2 -2
  43. package/js/dianzan.js +1 -1
  44. package/js/dis.js +3 -3
  45. package/js/fixbugpjax.js +1 -1
  46. package/js/fixed_card_widget.js +1 -1
  47. package/js/fps.js +1 -1
  48. package/js/gitalker.js +1 -1
  49. package/js/gsap.min.js +1 -4
  50. package/js/heimu.js +1 -1
  51. package/js/hide.show.js +1 -1
  52. package/js/languages.js +1 -1
  53. package/js/latest.js +1 -1
  54. package/js/local-search.js +2 -2
  55. package/js/lunar.js +1 -1
  56. package/js/lyxTalk.js +1 -1
  57. package/js/main.js +5 -5
  58. package/js/nav.js +1 -1
  59. package/js/noie.js +1 -1
  60. package/js/owo.js +1 -1
  61. package/js/people.js +2 -2
  62. package/js/pikaday.js +1 -109
  63. package/js/random.js +1 -1
  64. package/js/randomFriend.js +1 -1
  65. package/js/resizeTop.js +1 -1
  66. package/js/rightmenu.js +3 -3
  67. package/js/sakura.js +1 -1
  68. package/js/search/algolia.js +4 -4
  69. package/js/search/local-search.js +1 -1
  70. package/js/settings.js +2 -2
  71. package/js/sitetime.js +1 -1
  72. package/js/smooth-scrolling.js +1 -1
  73. package/js/sw-toolbox.js +1 -1
  74. package/js/swiperinit.js +1 -1
  75. package/js/tw_cn.js +1 -1
  76. package/js/utils.js +1 -1
  77. package/js/welcome.js +1 -1
  78. package/js/welcomeconsole.js +1 -1
  79. package/links/index.html +1 -932
  80. package/live2d-widget/autoload.js +19 -63
  81. package/live2d-widget/demo/demo.html +1 -34
  82. package/live2d-widget/demo/login.html +1 -271
  83. package/live2d-widget/live2d.min.js +45 -1
  84. package/live2d-widget/rollup.config.js +2 -35
  85. package/live2d-widget/src/index.js +4 -175
  86. package/live2d-widget/src/message.js +1 -22
  87. package/live2d-widget/src/model.js +1 -75
  88. package/live2d-widget/src/tools.js +1 -78
  89. package/live2d-widget/src/utils.js +1 -5
  90. package/live2d-widget/src/waifu-tips.js +1 -3
  91. package/live2d-widget/waifu-tips.js +7 -2
  92. package/live2d-widget/waifu.css +1 -310
  93. package/noie.html +1 -69
  94. package/othersite/index.html +1 -770
  95. package/package.json +1 -1
  96. package/people.html +1 -24
  97. package/posts/164ef646/index.html +1 -1018
  98. package/posts/228c2ef8/index.html +1 -1005
  99. package/posts/a9a6c1fb/index.html +1 -1032
  100. package/posts/ad884987/index.html +1 -1005
  101. package/posts/c262e439/index.html +1 -993
  102. package/posts/c81531cf/index.html +1 -1071
  103. package/posts/de1f83f4/index.html +1 -1061
  104. package/posts/e54f7476/index.html +1 -1053
  105. package/random.html +1 -27
  106. package/sitemap.txt +5 -5
  107. package/sitemap.xml +63 -63
  108. package/sw.js +2 -2
  109. package/swReg.js +1 -1
  110. package/tags/AI/index.html +1 -946
  111. package/tags/Butterfly/index.html +1 -946
  112. package/tags/Cloudflare/index.html +1 -946
  113. package/tags/DiffSinger/index.html +1 -946
  114. package/tags/Hexo/index.html +1 -946
  115. package/tags/Next/index.html +1 -946
  116. package/tags/RAID/index.html +1 -946
  117. package/tags/Vercel/index.html +1 -946
  118. package/tags/Workers/index.html +1 -946
  119. package/tags/index.html +1 -701
  120. package/tags//344/270/273/351/242/230/index.html +1 -946
  121. package/tags//345/206/231/344/275/234/index.html +1 -946
  122. package/tags//345/245/263/346/200/247/346/204/217/350/257/206/index.html +1 -946
  123. package/tags//345/255/246/344/271/240/index.html +1 -946
  124. package/tags//345/256/266/351/207/214/344/272/221/index.html +1 -946
  125. package/tags//345/271/264/347/273/210/346/200/273/347/273/223/index.html +1 -946
  126. package/tags//346/212/230/350/205/276/index.html +1 -946
  127. package/tags//346/227/245/345/270/270/index.html +1 -946
  128. package/tags//346/234/215/345/212/241/345/231/250/index.html +1 -946
  129. package/tags//346/265/252/346/275/256/index.html +1 -946
  130. package/tags//347/256/200/347/210/261/index.html +1 -946
  131. package/tags//350/207/252/345/212/250/346/240/207/346/263/250/index.html +1 -946
  132. package/tags//350/256/272/346/226/207/index.html +1 -946
  133. package/tags//350/260/267/346/255/214/347/277/273/350/257/221/index.html +1 -946
  134. package/tags//350/264/237/350/275/275/345/235/207/350/241/241/index.html +1 -946
  135. package/tags//351/207/221/345/217/245/index.html +1 -946
  136. package/tags//351/255/224/346/224/271/index.html +1 -946
  137. package/css/danmaku.css +0 -1
  138. package/js/danmaku.js +0 -0
  139. package/js/dist/baiduhistory.dev.js +0 -1
  140. package/js/dist/bbtalk.dev.js +0 -163
  141. package/js/dist/bbtalklunbo.dev.js +0 -1
  142. package/js/dist/calendar.dev.js +0 -1
  143. package/js/dist/fixbugpjax.dev.js +0 -1
  144. package/js/dist/gongnong.dev.js +0 -1
  145. package/js/dist/heimu.dev.js +0 -1
  146. package/js/dist/links.dev.js +0 -1
  147. package/js/dist/main.dev.js +0 -7
  148. package/js/dist/resizeTop.dev.js +0 -1
  149. package/js/dist/seo.dev.js +0 -1
  150. package/js/dist/twikoo.all.min.dev.js +0 -946
  151. package/js/twikoo.all.min.js +0 -2
@@ -1,63 +1,19 @@
1
- // live2d_path 参数建议使用绝对路径
2
- const live2d_path = "/live2d-widget/";
3
- //const live2d_path = "/live2d-widget/";
4
-
5
- // 封装异步加载资源的方法
6
- function loadExternalResource(url, type) {
7
- return new Promise((resolve, reject) => {
8
- let tag;
9
-
10
- if (type === "css") {
11
- tag = document.createElement("link");
12
- tag.rel = "stylesheet";
13
- tag.href = url;
14
- }
15
- else if (type === "js") {
16
- tag = document.createElement("script");
17
- tag.src = url;
18
- }
19
- if (tag) {
20
- tag.onload = () => resolve(url);
21
- tag.onerror = () => reject(url);
22
- document.head.appendChild(tag);
23
- }
24
- });
25
- }
26
-
27
- // 加载 waifu.css live2d.min.js waifu-tips.js
28
- if (screen.width >= 768) {
29
- Promise.all([
30
- loadExternalResource(live2d_path + "waifu.css", "css"),
31
- loadExternalResource(live2d_path + "live2d.min.js", "js"),
32
- loadExternalResource(live2d_path + "waifu-tips.js", "js")
33
- ]).then(() => {
34
- // 配置选项的具体用法见 README.md
35
- initWidget({
36
- waifuPath: live2d_path + "waifu-tips.json",
37
- //apiPath: "https://github.com/fghrsh/live2d_api/tree/1.0.1/",
38
- //cdnPath: "https://npm.elemecdn.com/akilar-live2dapi@latest/",
39
- cdnPath: "https://npm.elemecdn.com/akilar-live2dapi@latest/",
40
- tools: ["hitokoto", "asteroids", "switch-model", "switch-texture", "photo", "info", "quit"]
41
- });
42
- });
43
- }
44
-
45
- console.log(`
46
- く__,.ヘヽ. / ,ー、 〉
47
- \ ', !-─‐-i / /´
48
- /`ー' L//`ヽ、
49
- / /, /| , , ',
50
- イ / /-‐/ i L_ ハ ヽ! i
51
- レ ヘ 7イ`ト レ'ァ-ト、!ハ| |
52
- !,/7 '0' ´0iソ| |
53
- |.从" _ ,,,, / |./ |
54
- レ'| i>.、,,__ _,.イ / .i |
55
- レ'| | / k_7_/レ'ヽ, ハ. |
56
- | |/i 〈|/ i ,.ヘ | i |
57
- .|/ / i: ヘ! \ |
58
- kヽ>、ハ _,.ヘ、 /、!
59
- !'〈//`T´', \ `'7'ーr'
60
- レ'ヽL__|___i,___,ンレ|ノ
61
- ト-,/ |___./
62
- 'ー' !_,.:
63
- `);
1
+ (function(n,i){typeof module=="object"&&typeof module.exports=="object"?i():typeof define=="function"&&define.amd?define([],i):(n=typeof globalThis<"u"?globalThis:n||self)&&i()})(this,function(){var n="/live2d-widget/";function i(t,o){return new Promise(function(s,f){var e;o==="css"?(e=document.createElement("link"),e.rel="stylesheet",e.href=t):o==="js"&&(e=document.createElement("script"),e.src=t),e&&(e.onload=function(){return s(t)},e.onerror=function(){return f(t)},document.head.appendChild(e))})}screen.width>=768&&Promise.all([i(n+"waifu.css","css"),i(n+"live2d.min.js","js"),i(n+"waifu-tips.js","js")]).then(function(){initWidget({waifuPath:n+"waifu-tips.json",cdnPath:"https://npm.elemecdn.com/akilar-live2dapi@latest/",tools:["hitokoto","asteroids","switch-model","switch-texture","photo","info","quit"]})}),console.log(`
2
+ \u304F__,.\u30D8\u30FD. / ,\u30FC\uFF64 \u3009
3
+ \uFF3C ', !-\u2500\u2010-i / /\xB4
4
+ \uFF0F\uFF40\uFF70' L/\uFF0F\uFF40\u30FD\uFF64
5
+ / \uFF0F, /| , , ',
6
+ \uFF72 / /-\u2010/ \uFF49 L_ \uFF8A \u30FD! i
7
+ \uFF9A \uFF8D 7\uFF72\uFF40\uFF84 \uFF9A'\uFF67-\uFF84\uFF64!\u30CF| |
8
+ !,/7 '0' \xB40i\u30BD| |
9
+ |.\u4ECE" _ ,,,, / |./ |
10
+ \uFF9A'| i\uFF1E.\uFF64,,__ _,.\u30A4 / .i |
11
+ \uFF9A'| | / k_\uFF17_/\uFF9A'\u30FD, \uFF8A. |
12
+ | |/i \u3008|/ i ,.\uFF8D | i |
13
+ .|/ / \uFF49\uFF1A \uFF8D! \uFF3C |
14
+ k\u30FD>\uFF64\uFF8A _,.\uFF8D\uFF64 /\uFF64!
15
+ !'\u3008//\uFF40\uFF34\xB4', \uFF3C \uFF40'7'\uFF70r'
16
+ \uFF9A'\u30FDL__|___i,___,\u30F3\uFF9A|\u30CE
17
+ \uFF84-,/ |___./
18
+ '\uFF70' !_,.:
19
+ `)});
@@ -1,34 +1 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="UTF-8">
5
- <title>Live2D 看板娘 / Demo</title>
6
- <style>
7
- #github svg {
8
- transition: all 1s;
9
- fill: #222;
10
- color: #fff;
11
- position: absolute;
12
- top: 0;
13
- right: 0;
14
- border: 0;
15
- width: 80px;
16
- height: 80px;
17
- }
18
- #github:hover svg {
19
- width: 160px;
20
- height: 160px;
21
- }
22
- </style>
23
- </head>
24
- <body>
25
- <a id="github" href="https://github.com/stevenjoezhang/live2d-widget" target="_blank" title="Visit the open-source code on GitHub!">
26
- <svg viewBox="0 0 250 250" aria-hidden="true">
27
- <path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
28
- <path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" class="octo-arm"></path>
29
- <path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path>
30
- </svg>
31
- </a>
32
- <script src="../autoload.js"></script>
33
- </body>
34
- </html>
1
+ <!doctype html><html><head><meta charset="UTF-8"><title>Live2D 看板娘 / Demo</title><style>#github svg{transition:all 1s;fill:#222;color:#fff;position:absolute;top:0;right:0;border:0;width:80px;height:80px}#github:hover svg{width:160px;height:160px}</style></head><body><a id="github" href="https://github.com/stevenjoezhang/live2d-widget" target="_blank" title="Visit the open-source code on GitHub!"><svg viewBox="0 0 250 250" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><script src="../autoload.js"></script></body></html>
@@ -1,271 +1 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
6
- <title>看板娘登陆平台</title>
7
- <link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/bootstrap@5/dist/css/bootstrap.min.css">
8
- <link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/css/all.min.css">
9
- <script src="../live2d.min.js"></script>
10
- <style>
11
- html, body {
12
- height: 100%;
13
- }
14
- body {
15
- display: flex;
16
- align-items: center;
17
- justify-content: center;
18
- padding-top: 40px;
19
- padding-bottom: 40px;
20
- background-color: #f5f5f5;
21
- }
22
- .form-signin {
23
- width: 100%;
24
- max-width: 330px;
25
- padding: 15px;
26
- margin: 0 auto;
27
- }
28
- .form-signin .checkbox {
29
- font-weight: 400;
30
- }
31
- .form-signin .form-control {
32
- position: relative;
33
- box-sizing: border-box;
34
- height: auto;
35
- padding: 10px;
36
- font-size: 16px;
37
- }
38
- .form-signin .form-control:focus {
39
- z-index: 2;
40
- }
41
- .form-signin input[type=text] {
42
- margin-bottom: -1px;
43
- border-bottom-right-radius: 0;
44
- border-bottom-left-radius: 0;
45
- }
46
- .form-signin input[type=password] {
47
- margin-bottom: 10px;
48
- border-top-left-radius: 0;
49
- border-top-right-radius: 0;
50
- }
51
- #stage {
52
- position: relative;
53
- }
54
- #stage img {
55
- width: 100%;
56
- margin-bottom: 20px;
57
- border-radius: 20px;
58
- }
59
- #stage button {
60
- position: absolute;
61
- padding: 0;
62
- }
63
- #inner {
64
- position: relative;
65
- background-color: #999;
66
- clip-path: circle(120px at center);
67
- }
68
- #cover {
69
- position: absolute;
70
- background-color: #CB3837;
71
- width: 100%;
72
- height: 100%;
73
- bottom: 10%;
74
- transition: all 1s;
75
- box-shadow: 0 0 0 5px rgba(0, 0, 0, .1);
76
- }
77
- #text {
78
- position: absolute;
79
- bottom: 30%;
80
- font-size: 2em;
81
- left: 50%;
82
- transform: translateX(-50%);
83
- opacity: 0.4;
84
- font-weight: bold;
85
- }
86
- #detail {
87
- position: absolute;
88
- background: rgba(255, 255, 255, .1);
89
- width: 100%;
90
- height: 10px;
91
- bottom: 0;
92
- }
93
- #handle {
94
- position: absolute;
95
- background: #ccc;
96
- bottom: -2px;
97
- box-shadow: 0 1px 0 1px rgba(0, 0, 0, .1);
98
- height: 8px;
99
- left: 50%;
100
- margin-left: -15px;
101
- width: 30px;
102
- cursor: pointer;
103
- }
104
- #info {
105
- left: 40px;
106
- bottom: 20px;
107
- }
108
- #refresh {
109
- right: 40px;
110
- bottom: 20px;
111
- }
112
- #live2d {
113
- cursor: grab;
114
- height: 300px;
115
- width: 300px;
116
- }
117
- #live2d:active {
118
- cursor: grabbing;
119
- }
120
- </style>
121
- </head>
122
- <body class="text-center">
123
- <form class="form-signin" action="login.php" method="post">
124
- <div id="stage">
125
- <div id="inner">
126
- <div id="cover">
127
- <div id="text">
128
- <span style="color: cyan;">MIMI</span><span style="color: white;">POWERED</span>
129
- </div>
130
- <div id="detail"></div>
131
- <div id="handle"></div>
132
- </div>
133
- <canvas class="mb-4" id="live2d" width="800" height="800"></canvas>
134
- </div>
135
- <button class="btn btn-link" id="info"><i class="fa fa-lg fa-info"></i></button>
136
- <button class="btn btn-link" id="refresh"><i class="fa fa-lg fa-sync-alt"></i></button>
137
- </div>
138
- <h1 class="h3 mb-3 fw-normal">看板娘登陆平台</h1>
139
- <label for="room" class="sr-only">用户名</label>
140
- <input type="text" name="room" class="form-control" placeholder="用户名" required autofocus>
141
- <label for="pass" class="sr-only">密码</label>
142
- <input type="password" name="pass" class="form-control" placeholder="密码" required>
143
- <div class="checkbox mb-4">
144
- <label>
145
- <input type="checkbox" value="remember-me"> 记住我
146
- </label>
147
- </div>
148
- <div class="d-grid">
149
- <button class="btn btn-lg btn-primary" type="submit">登录</button>
150
- </div>
151
- <p class="mt-5 mb-3 text-muted">Copyleft &copy; Mimi 2019</p>
152
- </form>
153
- <script>
154
- /*
155
- * _(:з」∠)_
156
- * Created by Shuqiao Zhang in 2019.
157
- * https://zhangshuqiao.org
158
- */
159
-
160
- /*
161
- * This program is free software: you can redistribute it and/or modify
162
- * it under the terms of the GNU General Public License as published by
163
- * the Free Software Foundation, either version 3 of the License, or
164
- * (at your option) any later version.
165
- *
166
- * This program is distributed in the hope that it will be useful,
167
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
168
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
169
- * GNU General Public License for more details.
170
- */
171
- window.addEventListener("load", () => {
172
- "use strict";
173
-
174
- if (!CSS.supports("clip-path", "circle(120px at center)")) {
175
- document.getElementById("stage").innerHTML = '<img src="../assets/screenshot-1.png">';
176
- return;
177
- }
178
-
179
- const apiPath = "https://live2d.fghrsh.net/api";
180
- let state = 0, loading = false,
181
- modelId = localStorage.getItem("modelId"),
182
- modelTexturesId = localStorage.getItem("modelTexturesId");
183
- if (modelId === null) {
184
- modelId = 1;
185
- modelTexturesId = 53;
186
- }
187
- loadModel(modelId, modelTexturesId);
188
-
189
- function loadModel(modelId, modelTexturesId) {
190
- localStorage.setItem("modelId", modelId);
191
- if (modelTexturesId === undefined) modelTexturesId = 0;
192
- localStorage.setItem("modelTexturesId", modelTexturesId);
193
- loadlive2d("live2d", `${apiPath}/get/?id=${modelId}-${modelTexturesId}`, null);
194
- console.log("live2d", `模型 ${modelId}-${modelTexturesId} 加载完成`);
195
- setTimeout(() => {
196
- coverPosition("80%");
197
- state = 2;
198
- }, 2000);
199
- }
200
-
201
- function loadRandModel() {
202
- const modelId = localStorage.getItem("modelId"),
203
- modelTexturesId = localStorage.getItem("modelTexturesId");
204
- fetch(`${apiPath}/rand_textures/?id=${modelId}-${modelTexturesId}`)
205
- .then(response => response.json())
206
- .then(result => {
207
- loadModel(modelId, result.textures.id);
208
- setTimeout(() => {
209
- state = 2;
210
- coverPosition("80%");
211
- loading = false;
212
- }, 1000);
213
- });
214
- }
215
-
216
- function loadOtherModel() {
217
- const modelId = localStorage.getItem("modelId");
218
- fetch(`${apiPath}/switch/?id=${modelId}`)
219
- .then(response => response.json())
220
- .then(result => {
221
- loadModel(result.model.id);
222
- });
223
- }
224
-
225
- function coverPosition(pos) {
226
- document.getElementById("cover").style.bottom = pos;
227
- }
228
-
229
- document.getElementById("info").addEventListener("click", () => {
230
- fetch("https://v1.hitokoto.cn")
231
- .then(response => response.json())
232
- .then(result => {
233
- alert("「" + result.hitokoto + "」——" + result.from);
234
- });
235
- });
236
-
237
- document.getElementById("refresh").addEventListener("click", () => {
238
- if (loading) return;
239
- state = 0;
240
- coverPosition("10%");
241
- loading = true;
242
- setTimeout(loadRandModel, 1000);
243
- });
244
-
245
- document.getElementById("handle").addEventListener("click", () => {
246
- if (state === 1) {
247
- state = 2;
248
- coverPosition("80%");
249
- }
250
- else if (state === 2) {
251
- state = 1;
252
- coverPosition("20%");
253
- }
254
- });
255
-
256
- document.querySelector("input[type=password]").addEventListener("focus", () => {
257
- if (state === 2) {
258
- state = 1;
259
- coverPosition("20%");
260
- }
261
- });
262
- document.querySelector("input[type=password]").addEventListener("blur", () => {
263
- if (state === 1) {
264
- state = 2;
265
- coverPosition("80%");
266
- }
267
- });
268
- });
269
- </script>
270
- </body>
271
- </html>
1
+ <!doctype html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><title>看板娘登陆平台</title><link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/bootstrap@5/dist/css/bootstrap.min.css"><link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/css/all.min.css"><script src="../live2d.min.js"></script><style>body,html{height:100%}body{display:flex;align-items:center;justify-content:center;padding-top:40px;padding-bottom:40px;background-color:#f5f5f5}.form-signin{width:100%;max-width:330px;padding:15px;margin:0 auto}.form-signin .checkbox{font-weight:400}.form-signin .form-control{position:relative;box-sizing:border-box;height:auto;padding:10px;font-size:16px}.form-signin .form-control:focus{z-index:2}.form-signin input[type=text]{margin-bottom:-1px;border-bottom-right-radius:0;border-bottom-left-radius:0}.form-signin input[type=password]{margin-bottom:10px;border-top-left-radius:0;border-top-right-radius:0}#stage{position:relative}#stage img{width:100%;margin-bottom:20px;border-radius:20px}#stage button{position:absolute;padding:0}#inner{position:relative;background-color:#999;clip-path:circle(120px at center)}#cover{position:absolute;background-color:#cb3837;width:100%;height:100%;bottom:10%;transition:all 1s;box-shadow:0 0 0 5px rgba(0,0,0,.1)}#text{position:absolute;bottom:30%;font-size:2em;left:50%;transform:translateX(-50%);opacity:.4;font-weight:700}#detail{position:absolute;background:rgba(255,255,255,.1);width:100%;height:10px;bottom:0}#handle{position:absolute;background:#ccc;bottom:-2px;box-shadow:0 1px 0 1px rgba(0,0,0,.1);height:8px;left:50%;margin-left:-15px;width:30px;cursor:pointer}#info{left:40px;bottom:20px}#refresh{right:40px;bottom:20px}#live2d{cursor:grab;height:300px;width:300px}#live2d:active{cursor:grabbing}</style></head><body class="text-center"><form class="form-signin" action="login.php" method="post"><div id="stage"><div id="inner"><div id="cover"><div id="text"><span style="color:#0ff">MIMI</span><span style="color:#fff">POWERED</span></div><div id="detail"></div><div id="handle"></div></div><canvas class="mb-4" id="live2d" width="800" height="800"></canvas></div><button class="btn btn-link" id="info"><i class="fa fa-lg fa-info"></i></button> <button class="btn btn-link" id="refresh"><i class="fa fa-lg fa-sync-alt"></i></button></div><h1 class="h3 mb-3 fw-normal">看板娘登陆平台</h1><label for="room" class="sr-only">用户名</label> <input name="room" class="form-control" placeholder="用户名" required autofocus> <label for="pass" class="sr-only">密码</label> <input type="password" name="pass" class="form-control" placeholder="密码" required><div class="checkbox mb-4"><label><input type="checkbox" value="remember-me"> 记住我</label></div><div class="d-grid"><button class="btn btn-lg btn-primary" type="submit">登录</button></div><p class="mt-5 mb-3 text-muted">Copyleft &copy; Mimi 2019</p></form><script>window.addEventListener("load",(()=>{"use strict";if(!CSS.supports("clip-path","circle(120px at center)"))return void(document.getElementById("stage").innerHTML='<img src="../assets/screenshot-1.png">');const e="https://live2d.fghrsh.net/api";let t=0,o=!1,n=localStorage.getItem("modelId"),d=localStorage.getItem("modelTexturesId");function l(o,n){localStorage.setItem("modelId",o),void 0===n&&(n=0),localStorage.setItem("modelTexturesId",n),loadlive2d("live2d",`${e}/get/?id=${o}-${n}`,null),console.log("live2d",`模型 ${o}-${n} 加载完成`),setTimeout((()=>{r("80%"),t=2}),2e3)}function s(){const n=localStorage.getItem("modelId"),d=localStorage.getItem("modelTexturesId");fetch(`${e}/rand_textures/?id=${n}-${d}`).then((e=>e.json())).then((e=>{l(n,e.textures.id),setTimeout((()=>{t=2,r("80%"),o=!1}),1e3)}))}function r(e){document.getElementById("cover").style.bottom=e}null===n&&(n=1,d=53),l(n,d),document.getElementById("info").addEventListener("click",(()=>{fetch("https://v1.hitokoto.cn").then((e=>e.json())).then((e=>{alert("「"+e.hitokoto+"」——"+e.from)}))})),document.getElementById("refresh").addEventListener("click",(()=>{o||(t=0,r("10%"),o=!0,setTimeout(s,1e3))})),document.getElementById("handle").addEventListener("click",(()=>{1===t?(t=2,r("80%")):2===t&&(t=1,r("20%"))})),document.querySelector("input[type=password]").addEventListener("focus",(()=>{2===t&&(t=1,r("20%"))})),document.querySelector("input[type=password]").addEventListener("blur",(()=>{1===t&&(t=2,r("80%"))}))}))</script></body></html>