Mayx's Home Page https://mabbs.github.io
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

488 lines
15 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. var userAgent = window.navigator.userAgent.toLowerCase();
  2. console.log(userAgent);
  3. var norunAI = ["android", "iphone", "ipod", "ipad", "windows phone"];
  4. var norunFlag = false;
  5. for (var i = 0; i < norunAI.length; i++) {
  6. if (userAgent.indexOf(norunAI[i]) > -1) {
  7. norunFlag = true;
  8. break;
  9. }
  10. }
  11. if (!window.WebGLRenderingContext) {
  12. norunFlag = true;
  13. }
  14. if (!norunFlag) {
  15. var hitFlag = false;
  16. var AIFadeFlag = false;
  17. var liveTlakTimer = null;
  18. var sleepTimer_ = null;
  19. var AITalkFlag = false;
  20. var talkNum = 0;
  21. (function () {
  22. function renderTip(template, context) {
  23. var tokenReg = /(\\)?\{([^\{\}\\]+)(\\)?\}/g;
  24. return template.replace(tokenReg, function (word, slash1, token, slash2) {
  25. if (slash1 || slash2) {
  26. return word.replace(/\\/g, '');
  27. }
  28. var variables = token.replace(/\s/g, '').split('.');
  29. var currentObject = context;
  30. var i, length, variable;
  31. for (i = 0, length = variables.length; i < length; ++i) {
  32. variable = variables[i];
  33. currentObject = currentObject[variable];
  34. if (currentObject === undefined || currentObject === null) return '';
  35. }
  36. return currentObject;
  37. });
  38. }
  39. String.prototype.renderTip = function (context) {
  40. return renderTip(this, context);
  41. };
  42. var re = /x/;
  43. console.log(re);
  44. re.toString = function () {
  45. showMessage('哈哈,你打开了控制台,是想要看看我的秘密吗?', 5000);
  46. return '';
  47. };
  48. $(document).on('copy', function () {
  49. showMessage('你都复制了些什么呀,转载要记得加上出处哦~~', 5000);
  50. });
  51. function initTips() {
  52. $.ajax({
  53. cache: true,
  54. url: message_Path + 'message.json',
  55. dataType: "json",
  56. success: function (result) {
  57. $.each(result.mouseover, function (index, tips) {
  58. $(tips.selector).mouseover(function () {
  59. var text = tips.text;
  60. if (Array.isArray(tips.text)) text = tips.text[Math.floor(Math.random() * tips.text.length + 1) - 1];
  61. text = text.renderTip({ text: $(this).text() });
  62. showMessage(text, 3000);
  63. talkValTimer();
  64. clearInterval(liveTlakTimer);
  65. liveTlakTimer = null;
  66. });
  67. $(tips.selector).mouseout(function () {
  68. showHitokoto();
  69. if (liveTlakTimer == null) {
  70. liveTlakTimer = window.setInterval(function () {
  71. showHitokoto();
  72. }, 15000);
  73. };
  74. });
  75. });
  76. $.each(result.click, function (index, tips) {
  77. $(tips.selector).click(function () {
  78. if (hitFlag) {
  79. return false
  80. }
  81. hitFlag = true;
  82. setTimeout(function () {
  83. hitFlag = false;
  84. }, 8000);
  85. var text = tips.text;
  86. if (Array.isArray(tips.text)) text = tips.text[Math.floor(Math.random() * tips.text.length + 1) - 1];
  87. text = text.renderTip({ text: $(this).text() });
  88. showMessage(text, 3000);
  89. });
  90. clearInterval(liveTlakTimer);
  91. liveTlakTimer = null;
  92. if (liveTlakTimer == null) {
  93. liveTlakTimer = window.setInterval(function () {
  94. showHitokoto();
  95. }, 15000);
  96. };
  97. });
  98. }
  99. });
  100. }
  101. initTips();
  102. var text;
  103. if (document.referrer !== '' && document.referrer.split('/')[2] !== window.location.host) {
  104. var referrer = document.createElement('a');
  105. referrer.href = document.referrer;
  106. text = '嗨!来自 <span style="color:#0099cc;">' + referrer.hostname + '</span> 的朋友!';
  107. var domain = referrer.hostname.split('.')[1];
  108. if (domain == 'baidu') {
  109. text = '嗨! 来自 百度搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
  110. } else if (domain == 'so') {
  111. text = '嗨! 来自 360搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
  112. } else if (domain == 'google') {
  113. text = '嗨! 来自 谷歌搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
  114. }
  115. } else {
  116. if (window.location.pathname == "/") { //主页URL判断,需要斜杠结尾
  117. var now = (new Date()).getHours();
  118. if (now > 23 || now <= 5) {
  119. text = '你是夜猫子呀?这么晚还不睡觉,明天起的来嘛?';
  120. } else if (now > 5 && now <= 7) {
  121. text = '早上好!一日之计在于晨,美好的一天就要开始了!';
  122. } else if (now > 7 && now <= 11) {
  123. text = '上午好!工作顺利嘛,不要久坐,多起来走动走动哦!';
  124. } else if (now > 11 && now <= 14) {
  125. text = '中午了,工作了一个上午,现在是午餐时间!';
  126. } else if (now > 14 && now <= 17) {
  127. text = '午后很容易犯困呢,今天的运动目标完成了吗?';
  128. } else if (now > 17 && now <= 19) {
  129. text = '傍晚了!窗外夕阳的景色很美丽呢,最美不过夕阳红~~';
  130. } else if (now > 19 && now <= 21) {
  131. text = '晚上好,今天过得怎么样?';
  132. } else if (now > 21 && now <= 23) {
  133. text = '已经这么晚了呀,早点休息吧,晚安~~';
  134. } else {
  135. text = '嗨~ 快来逗我玩吧!';
  136. }
  137. } else {
  138. text = '欢迎阅读<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
  139. }
  140. }
  141. showMessage(text, 12000);
  142. })();
  143. liveTlakTimer = setInterval(function () {
  144. showHitokoto();
  145. }, 15000);
  146. function showHitokoto() {
  147. if (sessionStorage.getItem("Sleepy") !== "1") {
  148. if (!AITalkFlag) {
  149. $.getJSON('https://hitokoto.mayx.eu.org/', function (result) {
  150. talkValTimer();
  151. showMessage(result.hitokoto, 0);
  152. });
  153. }
  154. } else {
  155. hideMessage(0);
  156. if (sleepTimer_ == null) {
  157. sleepTimer_ = setInterval(function () {
  158. checkSleep();
  159. }, 200);
  160. }
  161. console.log(sleepTimer_);
  162. }
  163. }
  164. function checkSleep() {
  165. var sleepStatu = sessionStorage.getItem("Sleepy");
  166. if (sleepStatu !== '1') {
  167. talkValTimer();
  168. showMessage('你回来啦~', 0);
  169. clearInterval(sleepTimer_);
  170. sleepTimer_ = null;
  171. }
  172. }
  173. function showMessage(text, timeout) {
  174. if (Array.isArray(text)) text = text[Math.floor(Math.random() * text.length + 1) - 1];
  175. //console.log('showMessage', text);
  176. $('.message').stop();
  177. if (typeof EventSource !== 'undefined' && text instanceof EventSource) {
  178. var outputContainer = $('.message')[0];
  179. var eventFlag = false;
  180. text.onmessage = function (event) {
  181. if (event.data == "[DONE]") {
  182. text.close();
  183. return;
  184. } else {
  185. if (!eventFlag) {
  186. talkValTimer();
  187. outputContainer.textContent = "";
  188. eventFlag = true;
  189. }
  190. var data = JSON.parse(event.data);
  191. outputContainer.textContent += data.response;
  192. }
  193. }
  194. } else {
  195. $('.message').html(text);
  196. }
  197. $('.message').fadeTo(200, 1);
  198. //if (timeout === null) timeout = 5000;
  199. //hideMessage(timeout);
  200. }
  201. function talkValTimer() {
  202. $('#live_talk').val('1');
  203. }
  204. function hideMessage(timeout) {
  205. //$('.message').stop().css('opacity',1);
  206. if (timeout === null) timeout = 5000;
  207. $('.message').delay(timeout).fadeTo(200, 0);
  208. }
  209. function initLive2d() {
  210. $("#landlord").mouseenter(function () {
  211. $(".live_ico_box").fadeIn();
  212. });
  213. $("#landlord").mouseleave(function () {
  214. $(".live_ico_box").fadeOut();
  215. });
  216. $('#hideButton').on('click', function () {
  217. if (AIFadeFlag) {
  218. return false;
  219. } else {
  220. AIFadeFlag = true;
  221. localStorage.setItem("live2dhidden", "0");
  222. $('#landlord').fadeOut(200);
  223. $('#open_live2d').delay(200).fadeIn(200);
  224. setTimeout(function () {
  225. AIFadeFlag = false;
  226. }, 300);
  227. }
  228. });
  229. $('#open_live2d').on('click', function () {
  230. if (AIFadeFlag) {
  231. return false;
  232. } else {
  233. AIFadeFlag = true;
  234. localStorage.setItem("live2dhidden", "1");
  235. $('#open_live2d').fadeOut(200);
  236. $('#landlord').delay(200).fadeIn(200);
  237. setTimeout(function () {
  238. AIFadeFlag = false;
  239. }, 300);
  240. }
  241. });
  242. $('#youduButton').on('click', function () {
  243. if ($('#youduButton').hasClass('doudong')) {
  244. var typeIs = $('#youduButton').attr('data-type');
  245. $('#youduButton').removeClass('doudong');
  246. $('body').removeClass(typeIs);
  247. $('#youduButton').attr('data-type', '');
  248. } else {
  249. var duType = $('#duType').val();
  250. var duArr = duType.split(",");
  251. var dataType = duArr[Math.floor(Math.random() * duArr.length)];
  252. $('#youduButton').addClass('doudong');
  253. $('#youduButton').attr('data-type', dataType);
  254. $('body').addClass(dataType);
  255. }
  256. });
  257. if (talkAPI !== "" && typeof EventSource !== 'undefined') {
  258. $('#showInfoBtn').on('click', function () {
  259. var live_statu = $('#live_statu_val').val();
  260. if (live_statu == "0") {
  261. return
  262. } else {
  263. $('#live_statu_val').val("0");
  264. $('.live_talk_input_body').fadeOut(500);
  265. AITalkFlag = false;
  266. showHitokoto();
  267. $('#showTalkBtn').show();
  268. $('#showInfoBtn').hide();
  269. }
  270. });
  271. $('#showTalkBtn').on('click', function () {
  272. var live_statu = $('#live_statu_val').val();
  273. if (live_statu == "1") {
  274. return
  275. } else {
  276. $('#live_statu_val').val("1");
  277. $('.live_talk_input_body').fadeIn(500);
  278. AITalkFlag = true;
  279. $('#showTalkBtn').hide();
  280. $('#showInfoBtn').show();
  281. }
  282. });
  283. $('#live_talk_input_form').on('submit', function (e) {
  284. e.preventDefault();
  285. var info_ = $('#AIuserText').val();
  286. // var userid_ = $('#AIuserName').val();
  287. let add_id = "";
  288. if ($('#load_this').prop("checked")) {
  289. add_id = "&id=" + encodeURIComponent($('#post_id').val());
  290. }
  291. if (info_ == "") {
  292. showMessage('写点什么吧!', 0);
  293. return;
  294. }
  295. showMessage('思考中~', 0);
  296. showMessage(new EventSource(talkAPI + "?info=" + encodeURIComponent(info_) + add_id));
  297. });
  298. } else {
  299. $('#showInfoBtn').hide();
  300. $('#showTalkBtn').hide();
  301. }
  302. // //获取用户名
  303. // var live2dUser = sessionStorage.getItem("live2duser");
  304. // if(live2dUser !== null){
  305. // $('#AIuserName').val(live2dUser);
  306. // }
  307. //获取位置
  308. var landL = sessionStorage.getItem("historywidth");
  309. var landB = sessionStorage.getItem("historyheight");
  310. if (landL == null || landB == null) {
  311. landL = '5px'
  312. landB = '0px'
  313. }
  314. $('#landlord').css('left', landL + 'px');
  315. $('#landlord').css('bottom', landB + 'px');
  316. //移动
  317. function getEvent() {
  318. return window.event || arguments.callee.caller.arguments[0];
  319. }
  320. var smcc = document.getElementById("landlord");
  321. var moveX = 0;
  322. var moveY = 0;
  323. var moveBottom = 0;
  324. var moveLeft = 0;
  325. var moveable = false;
  326. var docMouseMoveEvent = document.onmousemove;
  327. var docMouseUpEvent = document.onmouseup;
  328. smcc.onmousedown = function () {
  329. var ent = getEvent();
  330. moveable = true;
  331. moveX = ent.clientX;
  332. moveY = ent.clientY;
  333. var obj = smcc;
  334. moveBottom = parseInt(obj.style.bottom);
  335. moveLeft = parseInt(obj.style.left);
  336. if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) {
  337. window.getSelection().removeAllRanges();
  338. }
  339. document.onmousemove = function () {
  340. if (moveable) {
  341. var ent = getEvent();
  342. var x = moveLeft + ent.clientX - moveX;
  343. var y = moveBottom + (moveY - ent.clientY);
  344. obj.style.left = x + "px";
  345. obj.style.bottom = y + "px";
  346. }
  347. };
  348. document.onmouseup = function () {
  349. if (moveable) {
  350. var historywidth = obj.style.left;
  351. var historyheight = obj.style.bottom;
  352. historywidth = historywidth.replace('px', '');
  353. historyheight = historyheight.replace('px', '');
  354. sessionStorage.setItem("historywidth", historywidth);
  355. sessionStorage.setItem("historyheight", historyheight);
  356. document.onmousemove = docMouseMoveEvent;
  357. document.onmouseup = docMouseUpEvent;
  358. moveable = false;
  359. moveX = 0;
  360. moveY = 0;
  361. moveBottom = 0;
  362. moveLeft = 0;
  363. }
  364. };
  365. };
  366. //获取音乐信息初始化
  367. var bgmListInfo = $('input[name=live2dBGM]');
  368. if (bgmListInfo.length == 0) {
  369. $('#musicButton').hide();
  370. } else {
  371. var bgmPlayNow = parseInt($('#live2d_bgm').attr('data-bgm'));
  372. var bgmPlayTime = 0;
  373. var live2dBGM_Num = sessionStorage.getItem("live2dBGM_Num");
  374. var live2dBGM_PlayTime = sessionStorage.getItem("live2dBGM_PlayTime");
  375. if (live2dBGM_Num) {
  376. if (live2dBGM_Num <= $('input[name=live2dBGM]').length - 1) {
  377. bgmPlayNow = parseInt(live2dBGM_Num);
  378. }
  379. }
  380. if (live2dBGM_PlayTime) {
  381. bgmPlayTime = parseInt(live2dBGM_PlayTime);
  382. }
  383. var live2dBGMSrc = bgmListInfo.eq(bgmPlayNow).val();
  384. $('#live2d_bgm').attr('data-bgm', bgmPlayNow);
  385. $('#live2d_bgm').attr('src', live2dBGMSrc);
  386. $('#live2d_bgm')[0].currentTime = bgmPlayTime;
  387. $('#live2d_bgm')[0].volume = 0.5;
  388. var live2dBGM_IsPlay = sessionStorage.getItem("live2dBGM_IsPlay");
  389. var live2dBGM_WindowClose = sessionStorage.getItem("live2dBGM_WindowClose");
  390. if (live2dBGM_IsPlay == '0' && live2dBGM_WindowClose == '0') {
  391. $('#live2d_bgm')[0].play();
  392. $('#musicButton').addClass('play');
  393. }
  394. sessionStorage.setItem("live2dBGM_WindowClose", '1');
  395. $('#musicButton').on('click', function () {
  396. if ($('#musicButton').hasClass('play')) {
  397. $('#live2d_bgm')[0].pause();
  398. $('#musicButton').removeClass('play');
  399. sessionStorage.setItem("live2dBGM_IsPlay", '1');
  400. } else {
  401. $('#live2d_bgm')[0].play();
  402. $('#musicButton').addClass('play');
  403. sessionStorage.setItem("live2dBGM_IsPlay", '0');
  404. }
  405. });
  406. window.onbeforeunload = function () {
  407. sessionStorage.setItem("live2dBGM_WindowClose", '0');
  408. if ($('#musicButton').hasClass('play')) {
  409. sessionStorage.setItem("live2dBGM_IsPlay", '0');
  410. }
  411. }
  412. document.getElementById('live2d_bgm').addEventListener("timeupdate", function () {
  413. var live2dBgmPlayTimeNow = document.getElementById('live2d_bgm').currentTime;
  414. sessionStorage.setItem("live2dBGM_PlayTime", live2dBgmPlayTimeNow);
  415. });
  416. document.getElementById('live2d_bgm').addEventListener("ended", function () {
  417. var listNow = parseInt($('#live2d_bgm').attr('data-bgm'));
  418. listNow++;
  419. if (listNow > $('input[name=live2dBGM]').length - 1) {
  420. listNow = 0;
  421. }
  422. var listNewSrc = $('input[name=live2dBGM]').eq(listNow).val();
  423. sessionStorage.setItem("live2dBGM_Num", listNow);
  424. $('#live2d_bgm').attr('src', listNewSrc);
  425. $('#live2d_bgm')[0].play();
  426. $('#live2d_bgm').attr('data-bgm', listNow);
  427. });
  428. document.getElementById('live2d_bgm').addEventListener("error", function () {
  429. $('#live2d_bgm')[0].pause();
  430. $('#musicButton').removeClass('play');
  431. showMessage('音乐似乎加载不出来了呢!', 0);
  432. });
  433. }
  434. }
  435. $(document).ready(function () {
  436. var AIimgSrc = [
  437. message_Path + "model/histoire/histoire.1024/texture_00.png",
  438. message_Path + "model/histoire/histoire.1024/texture_01.png",
  439. message_Path + "model/histoire/histoire.1024/texture_02.png",
  440. message_Path + "model/histoire/histoire.1024/texture_03.png"
  441. ]
  442. var images = [];
  443. var imgLength = AIimgSrc.length;
  444. var loadingNum = 0;
  445. for (var i = 0; i < imgLength; i++) {
  446. images[i] = new Image();
  447. images[i].src = AIimgSrc[i];
  448. images[i].onload = function () {
  449. loadingNum++;
  450. if (loadingNum === imgLength) {
  451. var live2dhidden = localStorage.getItem("live2dhidden");
  452. if (live2dhidden === "0") {
  453. setTimeout(function () {
  454. $('#open_live2d').fadeIn(200);
  455. }, 1300);
  456. } else {
  457. setTimeout(function () {
  458. $('#landlord').fadeIn(200);
  459. }, 1300);
  460. }
  461. setTimeout(function () {
  462. loadlive2d("live2d", message_Path + "model/histoire/model.json");
  463. }, 1000);
  464. initLive2d();
  465. images = null;
  466. }
  467. }
  468. }
  469. });
  470. }

Powered by TurnKey Linux.