|
window.live2d_settings = Array(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
live2d_settings['modelAPI'] = '//live2d.fghrsh.net/api/'; |
|
live2d_settings['tipsMessage'] = 'waifu-tips.json'; |
|
live2d_settings['hitokotoAPI'] = 'lwl12.com'; |
|
|
|
|
|
live2d_settings['modelId'] = 1; |
|
live2d_settings['modelTexturesId'] = 53; |
|
|
|
|
|
live2d_settings['showToolMenu'] = true; |
|
live2d_settings['canCloseLive2d'] = true; |
|
live2d_settings['canSwitchModel'] = true; |
|
live2d_settings['canSwitchTextures'] = true; |
|
live2d_settings['canSwitchHitokoto'] = true; |
|
live2d_settings['canTakeScreenshot'] = true; |
|
live2d_settings['canTurnToHomePage'] = true; |
|
live2d_settings['canTurnToAboutPage'] = true; |
|
|
|
|
|
live2d_settings['modelStorage'] = true; |
|
live2d_settings['modelRandMode'] = 'switch'; |
|
live2d_settings['modelTexturesRandMode']= 'rand'; |
|
|
|
|
|
live2d_settings['showHitokoto'] = true; |
|
live2d_settings['showF12Status'] = true; |
|
live2d_settings['showF12Message'] = false; |
|
live2d_settings['showF12OpenMsg'] = true; |
|
live2d_settings['showCopyMessage'] = true; |
|
live2d_settings['showWelcomeMessage'] = true; |
|
|
|
|
|
live2d_settings['waifuSize'] = '280x250'; |
|
live2d_settings['waifuTipsSize'] = '250x70'; |
|
live2d_settings['waifuFontSize'] = '12px'; |
|
live2d_settings['waifuToolFont'] = '14px'; |
|
live2d_settings['waifuToolLine'] = '20px'; |
|
live2d_settings['waifuToolTop'] = '0px' |
|
live2d_settings['waifuMinWidth'] = '768px'; |
|
live2d_settings['waifuEdgeSide'] = 'left:0'; |
|
live2d_settings['waifuDraggable'] = 'disable'; |
|
live2d_settings['waifuDraggableRevert'] = true; |
|
|
|
|
|
live2d_settings['l2dVersion'] = '1.4.2'; |
|
live2d_settings['l2dVerDate'] = '2018.11.12'; |
|
live2d_settings['homePageUrl'] = 'auto'; |
|
live2d_settings['aboutPageUrl'] = 'https://www.fghrsh.net/post/123.html'; |
|
live2d_settings['screenshotCaptureName']= 'live2d.png'; |
|
|
|
|
|
|
|
String.prototype.render = function(context) { |
|
var tokenReg = /(\\)?\{([^\{\}\\]+)(\\)?\}/g; |
|
|
|
return this.replace(tokenReg, function (word, slash1, token, slash2) { |
|
if (slash1 || slash2) { return word.replace('\\', ''); } |
|
|
|
var variables = token.replace(/\s/g, '').split('.'); |
|
var currentObject = context; |
|
var i, length, variable; |
|
|
|
for (i = 0, length = variables.length; i < length; ++i) { |
|
variable = variables[i]; |
|
currentObject = currentObject[variable]; |
|
if (currentObject === undefined || currentObject === null) return ''; |
|
} |
|
return currentObject; |
|
}); |
|
}; |
|
|
|
var re = /x/; |
|
console.log(re); |
|
|
|
function empty(obj) {return typeof obj=="undefined"||obj==null||obj==""?true:false} |
|
function getRandText(text) {return Array.isArray(text) ? text[Math.floor(Math.random() * text.length + 1)-1] : text} |
|
|
|
function showMessage(text, timeout, flag) { |
|
if(flag || sessionStorage.getItem('waifu-text') === '' || sessionStorage.getItem('waifu-text') === null){ |
|
if(Array.isArray(text)) text = text[Math.floor(Math.random() * text.length + 1)-1]; |
|
if (live2d_settings.showF12Message) console.log('[Message]', text.replace(/<[^<>]+>/g,'')); |
|
|
|
if(flag) sessionStorage.setItem('waifu-text', text); |
|
|
|
$('.waifu-tips').stop(); |
|
$('.waifu-tips').html(text).fadeTo(200, 1); |
|
if (timeout === undefined) timeout = 5000; |
|
hideMessage(timeout); |
|
} |
|
} |
|
|
|
function hideMessage(timeout) { |
|
$('.waifu-tips').stop().css('opacity',1); |
|
if (timeout === undefined) timeout = 5000; |
|
window.setTimeout(function() {sessionStorage.removeItem('waifu-text')}, timeout); |
|
$('.waifu-tips').delay(timeout).fadeTo(200, 0); |
|
} |
|
|
|
function initModel(waifuPath, type) { |
|
|
|
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('8.d(" ");8.d("\\U,.\\y\\5.\\1\\1\\1\\1/\\1,\\u\\2 \\H\\n\\1\\1\\1\\1\\1\\b \', !-\\r\\j-i\\1/\\1/\\g\\n\\1\\1\\1 \\1 \\a\\4\\f\'\\1\\1\\1 L/\\a\\4\\5\\2\\n\\1\\1 \\1 /\\1 \\a,\\1 /|\\1 ,\\1 ,\\1\\1\\1 \',\\n\\1\\1\\1\\q \\1/ /-\\j/\\1\\h\\E \\9 \\5!\\1 i\\n\\1\\1\\1 \\3 \\6 7\\q\\4\\c\\1 \\3\'\\s-\\c\\2!\\t|\\1 |\\n\\1\\1\\1\\1 !,/7 \'0\'\\1\\1 \\X\\w| \\1 |\\1\\1\\1\\n\\1\\1\\1\\1 |.\\x\\"\\1\\l\\1\\1 ,,,, / |./ \\1 |\\n\\1\\1\\1\\1 \\3\'| i\\z.\\2,,A\\l,.\\B / \\1.i \\1|\\n\\1\\1\\1\\1\\1 \\3\'| | / C\\D/\\3\'\\5,\\1\\9.\\1|\\n\\1\\1\\1\\1\\1\\1 | |/i \\m|/\\1 i\\1,.\\6 |\\F\\1|\\n\\1\\1\\1\\1\\1\\1.|/ /\\1\\h\\G \\1 \\6!\\1\\1\\b\\1|\\n\\1\\1\\1 \\1 \\1 k\\5>\\2\\9 \\1 o,.\\6\\2 \\1 /\\2!\\n\\1\\1\\1\\1\\1\\1 !\'\\m//\\4\\I\\g\', \\b \\4\'7\'\\J\'\\n\\1\\1\\1\\1\\1\\1 \\3\'\\K|M,p,\\O\\3|\\P\\n\\1\\1\\1\\1\\1 \\1\\1\\1\\c-,/\\1|p./\\n\\1\\1\\1\\1\\1 \\1\\1\\1\'\\f\'\\1\\1!o,.:\\Q \\R\\S\\T v"+e.V+" / W "+e.N);8.d(" ");',60,60,'|u3000|uff64|uff9a|uff40|u30fd|uff8d||console|uff8a|uff0f|uff3c|uff84|log|live2d_settings|uff70|u00b4|uff49||u2010||u3000_|u3008||_|___|uff72|u2500|uff67|u30cf|u30fc||u30bd|u4ece|u30d8|uff1e|__|u30a4|k_|uff17_|u3000L_|u3000i|uff1a|u3009|uff34|uff70r|u30fdL__||___i|l2dVerDate|u30f3|u30ce|nLive2D|u770b|u677f|u5a18|u304f__|l2dVersion|FGHRSH|u00b40i'.split('|'),0,{})); |
|
|
|
|
|
if (typeof($.ajax) != 'function') typeof(jQuery.ajax) == 'function' ? window.$ = jQuery : console.log('[Error] JQuery is not defined.'); |
|
|
|
|
|
live2d_settings.waifuSize = live2d_settings.waifuSize.split('x'); |
|
live2d_settings.waifuTipsSize = live2d_settings.waifuTipsSize.split('x'); |
|
live2d_settings.waifuEdgeSide = live2d_settings.waifuEdgeSide.split(':'); |
|
|
|
$("#live2d").attr("width",live2d_settings.waifuSize[0]); |
|
$("#live2d").attr("height",live2d_settings.waifuSize[1]); |
|
$(".waifu-tips").width(live2d_settings.waifuTipsSize[0]); |
|
$(".waifu-tips").height(live2d_settings.waifuTipsSize[1]); |
|
$(".waifu-tips").css("top",live2d_settings.waifuToolTop); |
|
$(".waifu-tips").css("font-size",live2d_settings.waifuFontSize); |
|
$(".waifu-tool").css("font-size",live2d_settings.waifuToolFont); |
|
$(".waifu-tool span").css("line-height",live2d_settings.waifuToolLine); |
|
|
|
if (live2d_settings.waifuEdgeSide[0] == 'left') $(".waifu").css("left",live2d_settings.waifuEdgeSide[1]+'px'); |
|
else if (live2d_settings.waifuEdgeSide[0] == 'right') $(".waifu").css("right",live2d_settings.waifuEdgeSide[1]+'px'); |
|
|
|
window.waifuResize = function() { $(window).width() <= Number(live2d_settings.waifuMinWidth.replace('px','')) ? $(".waifu").hide() : $(".waifu").show(); }; |
|
if (live2d_settings.waifuMinWidth != 'disable') { waifuResize(); $(window).resize(function() {waifuResize()}); } |
|
|
|
try { |
|
if (live2d_settings.waifuDraggable == 'axis-x') $(".waifu").draggable({ axis: "x", revert: live2d_settings.waifuDraggableRevert }); |
|
else if (live2d_settings.waifuDraggable == 'unlimited') $(".waifu").draggable({ revert: live2d_settings.waifuDraggableRevert }); |
|
else $(".waifu").css("transition", 'all .3s ease-in-out'); |
|
} catch(err) { console.log('[Error] JQuery UI is not defined.') } |
|
|
|
live2d_settings.homePageUrl = live2d_settings.homePageUrl == 'auto' ? window.location.protocol+'//'+window.location.hostname+'/' : live2d_settings.homePageUrl; |
|
if (window.location.protocol == 'file:' && live2d_settings.modelAPI.substr(0,2) == '//') live2d_settings.modelAPI = 'http:'+live2d_settings.modelAPI; |
|
|
|
$('.waifu-tool .fui-home').click(function (){ |
|
|
|
window.location = live2d_settings.homePageUrl; |
|
}); |
|
|
|
$('.waifu-tool .fui-info-circle').click(function (){ |
|
|
|
window.open(live2d_settings.aboutPageUrl); |
|
}); |
|
|
|
if (typeof(waifuPath) == "object") loadTipsMessage(waifuPath); else { |
|
$.ajax({ |
|
cache: true, |
|
url: waifuPath == '' ? live2d_settings.tipsMessage : (waifuPath.substr(waifuPath.length-15)=='waifu-tips.json'?waifuPath:waifuPath+'waifu-tips.json'), |
|
dataType: "json", |
|
success: function (result){ loadTipsMessage(result); } |
|
}); |
|
} |
|
|
|
if (!live2d_settings.showToolMenu) $('.waifu-tool').hide(); |
|
if (!live2d_settings.canCloseLive2d) $('.waifu-tool .fui-cross').hide(); |
|
if (!live2d_settings.canSwitchModel) $('.waifu-tool .fui-eye').hide(); |
|
if (!live2d_settings.canSwitchTextures) $('.waifu-tool .fui-user').hide(); |
|
if (!live2d_settings.canSwitchHitokoto) $('.waifu-tool .fui-chat').hide(); |
|
if (!live2d_settings.canTakeScreenshot) $('.waifu-tool .fui-photo').hide(); |
|
if (!live2d_settings.canTurnToHomePage) $('.waifu-tool .fui-home').hide(); |
|
if (!live2d_settings.canTurnToAboutPage) $('.waifu-tool .fui-info-circle').hide(); |
|
|
|
if (waifuPath === undefined) waifuPath = ''; |
|
var modelId = localStorage.getItem('modelId'); |
|
var modelTexturesId = localStorage.getItem('modelTexturesId'); |
|
|
|
if (!live2d_settings.modelStorage || modelId == null) { |
|
var modelId = live2d_settings.modelId; |
|
var modelTexturesId = live2d_settings.modelTexturesId; |
|
} loadModel(modelId, modelTexturesId); |
|
} |
|
|
|
function loadModel(modelId, modelTexturesId=0) { |
|
if (live2d_settings.modelStorage) { |
|
localStorage.setItem('modelId', modelId); |
|
localStorage.setItem('modelTexturesId', modelTexturesId); |
|
} else { |
|
sessionStorage.setItem('modelId', modelId); |
|
sessionStorage.setItem('modelTexturesId', modelTexturesId); |
|
} loadlive2d('live2d', live2d_settings.modelAPI+'get/?id='+modelId+'-'+modelTexturesId, (live2d_settings.showF12Status ? console.log('[Status]','live2d','模型',modelId+'-'+modelTexturesId,'加载完成'):null)); |
|
} |
|
|
|
function loadTipsMessage(result) { |
|
window.waifu_tips = result; |
|
|
|
$.each(result.mouseover, function (index, tips){ |
|
$(document).on("mouseover", tips.selector, function (){ |
|
var text = getRandText(tips.text); |
|
text = text.render({text: $(this).text()}); |
|
showMessage(text, 3000); |
|
}); |
|
}); |
|
$.each(result.click, function (index, tips){ |
|
$(document).on("click", tips.selector, function (){ |
|
var text = getRandText(tips.text); |
|
text = text.render({text: $(this).text()}); |
|
showMessage(text, 3000, true); |
|
}); |
|
}); |
|
$.each(result.seasons, function (index, tips){ |
|
var now = new Date(); |
|
var after = tips.date.split('-')[0]; |
|
var before = tips.date.split('-')[1] || after; |
|
|
|
if((after.split('/')[0] <= now.getMonth()+1 && now.getMonth()+1 <= before.split('/')[0]) && |
|
(after.split('/')[1] <= now.getDate() && now.getDate() <= before.split('/')[1])){ |
|
var text = getRandText(tips.text); |
|
text = text.render({year: now.getFullYear()}); |
|
showMessage(text, 6000, true); |
|
} |
|
}); |
|
|
|
if (live2d_settings.showF12OpenMsg) { |
|
re.toString = function() { |
|
showMessage(getRandText(result.waifu.console_open_msg), 5000, true); |
|
return ''; |
|
}; |
|
} |
|
|
|
if (live2d_settings.showCopyMessage) { |
|
$(document).on('copy', function() { |
|
showMessage(getRandText(result.waifu.copy_message), 5000, true); |
|
}); |
|
} |
|
|
|
$('.waifu-tool .fui-photo').click(function(){ |
|
showMessage(getRandText(result.waifu.screenshot_message), 5000, true); |
|
window.Live2D.captureName = live2d_settings.screenshotCaptureName; |
|
window.Live2D.captureFrame = true; |
|
}); |
|
|
|
$('.waifu-tool .fui-cross').click(function(){ |
|
sessionStorage.setItem('waifu-dsiplay', 'none'); |
|
showMessage(getRandText(result.waifu.hidden_message), 1300, true); |
|
window.setTimeout(function() {$('.waifu').hide();}, 1300); |
|
}); |
|
|
|
window.showWelcomeMessage = function(result) { |
|
var text; |
|
if (window.location.href == live2d_settings.homePageUrl) { |
|
var now = (new Date()).getHours(); |
|
if (now > 23 || now <= 5) text = getRandText(result.waifu.hour_tips['t23-5']); |
|
else if (now > 5 && now <= 7) text = getRandText(result.waifu.hour_tips['t5-7']); |
|
else if (now > 7 && now <= 11) text = getRandText(result.waifu.hour_tips['t7-11']); |
|
else if (now > 11 && now <= 14) text = getRandText(result.waifu.hour_tips['t11-14']); |
|
else if (now > 14 && now <= 17) text = getRandText(result.waifu.hour_tips['t14-17']); |
|
else if (now > 17 && now <= 19) text = getRandText(result.waifu.hour_tips['t17-19']); |
|
else if (now > 19 && now <= 21) text = getRandText(result.waifu.hour_tips['t19-21']); |
|
else if (now > 21 && now <= 23) text = getRandText(result.waifu.hour_tips['t21-23']); |
|
else text = getRandText(result.waifu.hour_tips.default); |
|
} else { |
|
var referrer_message = result.waifu.referrer_message; |
|
if (document.referrer !== '') { |
|
var referrer = document.createElement('a'); |
|
referrer.href = document.referrer; |
|
var domain = referrer.hostname.split('.')[1]; |
|
if (window.location.hostname == referrer.hostname) |
|
text = referrer_message.localhost[0] + document.title.split(referrer_message.localhost[2])[0] + referrer_message.localhost[1]; |
|
else if (domain == 'baidu') |
|
text = referrer_message.baidu[0] + referrer.search.split('&wd=')[1].split('&')[0] + referrer_message.baidu[1]; |
|
else if (domain == 'so') |
|
text = referrer_message.so[0] + referrer.search.split('&q=')[1].split('&')[0] + referrer_message.so[1]; |
|
else if (domain == 'google') |
|
text = referrer_message.google[0] + document.title.split(referrer_message.google[2])[0] + referrer_message.google[1]; |
|
else { |
|
$.each(result.waifu.referrer_hostname, function(i,val) {if (i==referrer.hostname) referrer.hostname = getRandText(val)}); |
|
text = referrer_message.default[0] + referrer.hostname + referrer_message.default[1]; |
|
} |
|
} else text = referrer_message.none[0] + document.title.split(referrer_message.none[2])[0] + referrer_message.none[1]; |
|
} |
|
showMessage(text, 6000); |
|
}; if (live2d_settings.showWelcomeMessage) showWelcomeMessage(result); |
|
|
|
var waifu_tips = result.waifu; |
|
|
|
function loadOtherModel() { |
|
var modelId = modelStorageGetItem('modelId'); |
|
var modelRandMode = live2d_settings.modelRandMode; |
|
|
|
$.ajax({ |
|
cache: modelRandMode == 'switch' ? true : false, |
|
url: live2d_settings.modelAPI+modelRandMode+'/?id='+modelId, |
|
dataType: "json", |
|
success: function(result) { |
|
loadModel(result.model['id']); |
|
var message = result.model['message']; |
|
$.each(waifu_tips.model_message, function(i,val) {if (i==result.model['id']) message = getRandText(val)}); |
|
showMessage(message, 3000, true); |
|
} |
|
}); |
|
} |
|
|
|
function loadRandTextures() { |
|
var modelId = modelStorageGetItem('modelId'); |
|
var modelTexturesId = modelStorageGetItem('modelTexturesId'); |
|
var modelTexturesRandMode = live2d_settings.modelTexturesRandMode; |
|
|
|
$.ajax({ |
|
cache: modelTexturesRandMode == 'switch' ? true : false, |
|
url: live2d_settings.modelAPI+modelTexturesRandMode+'_textures/?id='+modelId+'-'+modelTexturesId, |
|
dataType: "json", |
|
success: function(result) { |
|
if (result.textures['id'] == 1 && (modelTexturesId == 1 || modelTexturesId == 0)) |
|
showMessage(waifu_tips.load_rand_textures[0], 3000, true); |
|
else showMessage(waifu_tips.load_rand_textures[1], 3000, true); |
|
loadModel(modelId, result.textures['id']); |
|
} |
|
}); |
|
} |
|
|
|
function modelStorageGetItem(key) { return live2d_settings.modelStorage ? localStorage.getItem(key) : sessionStorage.getItem(key); } |
|
|
|
|
|
if (live2d_settings.showHitokoto) { |
|
window.getActed = false; window.hitokotoTimer = 0; window.hitokotoInterval = false; |
|
$(document).mousemove(function(e){getActed = true;}).keydown(function(){getActed = true;}); |
|
setInterval(function(){ if (!getActed) ifActed(); else elseActed(); }, 1000); |
|
} |
|
|
|
function ifActed() { |
|
if (!hitokotoInterval) { |
|
hitokotoInterval = true; |
|
hitokotoTimer = window.setInterval(showHitokotoActed, 30000); |
|
} |
|
} |
|
|
|
function elseActed() { |
|
getActed = hitokotoInterval = false; |
|
window.clearInterval(hitokotoTimer); |
|
} |
|
|
|
function showHitokotoActed() { |
|
if ($(document)[0].visibilityState == 'visible') showHitokoto(); |
|
} |
|
|
|
function showHitokoto() { |
|
switch(live2d_settings.hitokotoAPI) { |
|
case 'lwl12.com': |
|
$.getJSON('https://api.lwl12.com/hitokoto/v1?encode=realjson',function(result){ |
|
if (!empty(result.source)) { |
|
var text = waifu_tips.hitokoto_api_message['lwl12.com'][0]; |
|
if (!empty(result.author)) text += waifu_tips.hitokoto_api_message['lwl12.com'][1]; |
|
text = text.render({source: result.source, creator: result.author}); |
|
window.setTimeout(function() {showMessage(text+waifu_tips.hitokoto_api_message['lwl12.com'][2], 3000, true);}, 5000); |
|
} showMessage(result.text, 5000, true); |
|
});break; |
|
case 'fghrsh.net': |
|
$.getJSON('https://api.fghrsh.net/hitokoto/rand/?encode=jsc&uid=3335',function(result){ |
|
if (!empty(result.source)) { |
|
var text = waifu_tips.hitokoto_api_message['fghrsh.net'][0]; |
|
text = text.render({source: result.source, date: result.date}); |
|
window.setTimeout(function() {showMessage(text, 3000, true);}, 5000); |
|
showMessage(result.hitokoto, 5000, true); |
|
} |
|
});break; |
|
case 'jinrishici.com': |
|
$.ajax({ |
|
url: 'https://v2.jinrishici.com/one.json', |
|
xhrFields: {withCredentials: true}, |
|
success: function (result, status) { |
|
if (!empty(result.data.origin.title)) { |
|
var text = waifu_tips.hitokoto_api_message['jinrishici.com'][0]; |
|
text = text.render({title: result.data.origin.title, dynasty: result.data.origin.dynasty, author:result.data.origin.author}); |
|
window.setTimeout(function() {showMessage(text, 3000, true);}, 5000); |
|
} showMessage(result.data.content, 5000, true); |
|
} |
|
});break; |
|
default: |
|
$.getJSON('https://v1.hitokoto.cn',function(result){ |
|
if (!empty(result.from)) { |
|
var text = waifu_tips.hitokoto_api_message['hitokoto.cn'][0]; |
|
text = text.render({source: result.from, creator: result.creator}); |
|
window.setTimeout(function() {showMessage(text, 3000, true);}, 5000); |
|
} |
|
showMessage(result.hitokoto, 5000, true); |
|
}); |
|
} |
|
} |
|
|
|
$('.waifu-tool .fui-eye').click(function (){loadOtherModel()}); |
|
$('.waifu-tool .fui-user').click(function (){loadRandTextures()}); |
|
$('.waifu-tool .fui-chat').click(function (){showHitokoto()}); |
|
} |
|
|