Commit 307f9941 authored by Liang's avatar Liang

🎨 #12472

parent be0a07e1
...@@ -71,6 +71,9 @@ var Util = { ...@@ -71,6 +71,9 @@ var Util = {
storage: true, storage: true,
titleSuffix: '', titleSuffix: '',
filter: function(href){ filter: function(href){
if (href.indexOf('data:image') > -1) {
return true
}
return Util._isArticlePage(href); return Util._isArticlePage(href);
}, },
callback: function () { callback: function () {
...@@ -95,6 +98,9 @@ var Util = { ...@@ -95,6 +98,9 @@ var Util = {
storage: true, storage: true,
titleSuffix: '', titleSuffix: '',
filter: function(href){ filter: function(href){
if (href.indexOf('data:image') > -1) {
return true
}
return !Util._isArticlePage(href); return !Util._isArticlePage(href);
}, },
callback: function () { callback: function () {
......
.solo-kanbanniang {
position: fixed;
bottom: 0;
left: 0;
}
.solo-kanbanniang:hover .solo-kanbanniang__tool {
display: block;
}
.solo-kanbanniang svg {
fill: currentColor;
display: inline-block;
stroke-width: 0;
stroke: currentColor;
width: 18px;
height: 18px;
color: #3b3e43;
margin-bottom: 10px;
cursor: pointer;
}
.solo-kanbanniang svg:hover {
color: #4285f4;
}
.solo-kanbanniang__tool {
position: absolute;
top: 23px;
width: 18px;
right: 10px;
display: none;
}
.solo-kanbanniang__tip {
opacity: 0;
width: 260px;
margin: 0 10px;
padding: 10px;
border-radius: 5px;
background-color: rgba(241, 247, 254, 0.8);
box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
font-size: 14px;
text-overflow: ellipsis;
overflow: hidden;
position: absolute;
animation-delay: 5s;
animation-duration: 50s;
animation-iteration-count: infinite;
animation-name: kanbanniangshake;
animation-timing-function: ease-in-out;
box-sizing: border-box;
color: rgba(0, 0, 0, .54);
}
@keyframes kanbanniangshake {
2% {
transform: translate(0.5px, -1.5px) rotate(-0.5deg);
}
4% {
transform: translate(0.5px, 1.5px) rotate(1.5deg);
}
6% {
transform: translate(1.5px, 1.5px) rotate(1.5deg);
}
8% {
transform: translate(2.5px, 1.5px) rotate(0.5deg);
}
10% {
transform: translate(0.5px, 2.5px) rotate(0.5deg);
}
12% {
transform: translate(1.5px, 1.5px) rotate(0.5deg);
}
14% {
transform: translate(0.5px, 0.5px) rotate(0.5deg);
}
16% {
transform: translate(-1.5px, -0.5px) rotate(1.5deg);
}
18% {
transform: translate(0.5px, 0.5px) rotate(1.5deg);
}
20% {
transform: translate(2.5px, 2.5px) rotate(1.5deg);
}
22% {
transform: translate(0.5px, -1.5px) rotate(1.5deg);
}
24% {
transform: translate(-1.5px, 1.5px) rotate(-0.5deg);
}
26% {
transform: translate(1.5px, 0.5px) rotate(1.5deg);
}
28% {
transform: translate(-0.5px, -0.5px) rotate(-0.5deg);
}
30% {
transform: translate(1.5px, -0.5px) rotate(-0.5deg);
}
32% {
transform: translate(2.5px, -1.5px) rotate(1.5deg);
}
34% {
transform: translate(2.5px, 2.5px) rotate(-0.5deg);
}
36% {
transform: translate(0.5px, -1.5px) rotate(0.5deg);
}
38% {
transform: translate(2.5px, -0.5px) rotate(-0.5deg);
}
40% {
transform: translate(-0.5px, 2.5px) rotate(0.5deg);
}
42% {
transform: translate(-1.5px, 2.5px) rotate(0.5deg);
}
44% {
transform: translate(-1.5px, 1.5px) rotate(0.5deg);
}
46% {
transform: translate(1.5px, -0.5px) rotate(-0.5deg);
}
48% {
transform: translate(2.5px, -0.5px) rotate(0.5deg);
}
50% {
transform: translate(-1.5px, 1.5px) rotate(0.5deg);
}
52% {
transform: translate(-0.5px, 1.5px) rotate(0.5deg);
}
54% {
transform: translate(-1.5px, 1.5px) rotate(0.5deg);
}
56% {
transform: translate(0.5px, 2.5px) rotate(1.5deg);
}
58% {
transform: translate(2.5px, 2.5px) rotate(0.5deg);
}
60% {
transform: translate(2.5px, -1.5px) rotate(1.5deg);
}
62% {
transform: translate(-1.5px, 0.5px) rotate(1.5deg);
}
64% {
transform: translate(-1.5px, 1.5px) rotate(1.5deg);
}
66% {
transform: translate(0.5px, 2.5px) rotate(1.5deg);
}
68% {
transform: translate(2.5px, -1.5px) rotate(1.5deg);
}
70% {
transform: translate(2.5px, 2.5px) rotate(0.5deg);
}
72% {
transform: translate(-0.5px, -1.5px) rotate(1.5deg);
}
74% {
transform: translate(-1.5px, 2.5px) rotate(1.5deg);
}
76% {
transform: translate(-1.5px, 2.5px) rotate(1.5deg);
}
78% {
transform: translate(-1.5px, 2.5px) rotate(0.5deg);
}
80% {
transform: translate(-1.5px, 0.5px) rotate(-0.5deg);
}
82% {
transform: translate(-1.5px, 0.5px) rotate(-0.5deg);
}
84% {
transform: translate(-0.5px, 0.5px) rotate(1.5deg);
}
86% {
transform: translate(2.5px, 1.5px) rotate(0.5deg);
}
88% {
transform: translate(-1.5px, 0.5px) rotate(1.5deg);
}
90% {
transform: translate(-1.5px, -0.5px) rotate(-0.5deg);
}
92% {
transform: translate(-1.5px, -1.5px) rotate(1.5deg);
}
94% {
transform: translate(0.5px, 0.5px) rotate(-0.5deg);
}
96% {
transform: translate(2.5px, -0.5px) rotate(-0.5deg);
}
98% {
transform: translate(-1.5px, -1.5px) rotate(-0.5deg);
}
0%, 100% {
transform: translate(0, 0) rotate(0);
}
}
\ No newline at end of file
String.prototype.render = function(context) { var soloKanbanniang = {
var tokenReg = /(\\)?\{([^\{\}\\]+)(\\)?\}/g; clearTime: '',
showMessage: function(text, timeout) {
return this.replace(tokenReg, function(word, slash1, token, slash2) { if (sessionStorage.getItem('soloKanbanniang') === 'close') {
if (slash1 || slash2) { return;
return word.replace('\\', '');
} }
if (Array.isArray(text)) {
var variables = token.replace(/\s/g, '').split('.'); text = text[Math.floor(Math.random() * text.length + 1) - 1];
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; $('.solo-kanbanniang__tip').html(text).fadeTo(200, 1);
}); clearTimeout(this.clearTime);
}; this.clearTime = setTimeout(function() {
$('.solo-kanbanniang__tip').fadeTo(200, 0);
var re = /x/; }, timeout);
console.log(re); },
re.toString = function() { _initTips: function() {
showMessage('哈哈,你打开了控制台,是想要看看我的秘密吗?', 5000, true); $.ajax({
return '';
};
$(document).on('copy', function() {
showMessage('你都复制了些什么呀,转载要记得加上出处哦', 5000, true);
});
$('#hitokoto').mouseover(function() {
var text = '这句一言出处是 <span style="color:#0099cc;">『{source}』</span>,是 <span style="color:#0099cc;">{author}</span> 在 {date} 时投稿的!';
var hitokoto = JSON.parse($(this)[0].dataset.raw);
text = text.render(
{source: hitokoto.source, author: hitokoto.author, date: hitokoto.date});
showMessage(text, 3000);
});
$('.waifu-tool .fui-home').click(function() {
window.location = 'https://imjad.cn/';
});
$('.waifu-tool .fui-eye').click(function() {
switchNightMode();
showMessage('你会做眼保健操吗?', 3000, true);
});
$('.waifu-tool .fui-chat').click(function() {
showHitokoto();
});
$('.waifu-tool .fui-user').click(function() {
loadRandModel();
showMessage('我的新衣服好看嘛', 3000, true);
});
$('.waifu-tool .fui-info-circle').click(function() {
window.open(
'https://imjad.cn/archives/lab/add-dynamic-poster-girl-with-live2d-to-your-blog-02');
});
$('.waifu-tool .fui-cross').click(function() {
sessionStorage.setItem('waifu-dsiplay', 'none');
showMessage('愿你有一天能与重要的人重逢', 1300, true);
window.setTimeout(function() {$('.waifu').hide();}, 1300);
});
$('.waifu-tool .fui-photo').click(function() {
showMessage('照好了嘛,是不是很可爱呢?', 5000, true);
window.Live2D.captureName = 'Pio.png';
window.Live2D.captureFrame = true;
});
$.ajax({
cache: true, cache: true,
url: latkeConfig.staticServePath + '/plugins/kanbanniang/assert/tips.json', url: latkeConfig.staticServePath +
'/plugins/kanbanniang/assert/tips.json',
dataType: 'json', dataType: 'json',
success: function(result) { success: function(result) {
$.each(result.mouseover, function(index, tips) { $.each(result.mouseover, function(index, tips) {
$(document).on('mouseover', tips.selector, function() { $(document).on('mouseover', tips.selector, function() {
var text = tips.text; soloKanbanniang.showMessage(
if (Array.isArray( tips.text.replace('{text}', $(this).text()), 3000);
tips.text)) text = tips.text[Math.floor(Math.random() *
tips.text.length + 1) - 1];
text = text.render({text: $(this).text()});
showMessage(text, 3000);
}); });
}); });
$.each(result.click, function(index, tips) { $.each(result.click, function(index, tips) {
$(document).on('click', tips.selector, function() { $(document).on('click', tips.selector, function() {
var text = tips.text; var text = tips.text[Math.floor(Math.random() * tips.text.length +
if (Array.isArray( 1) - 1];
tips.text)) text = tips.text[Math.floor(Math.random() * soloKanbanniang.showMessage(text, 3000, true);
tips.text.length + 1) - 1];
text = text.render({text: $(this).text()});
showMessage(text, 3000, true);
}); });
}); });
$.each(result.seasons, function(index, tips) { $.each(result.seasons, function(index, tips) {
...@@ -103,46 +38,79 @@ $.ajax({ ...@@ -103,46 +38,79 @@ $.ajax({
var after = tips.date.split('-')[0]; var after = tips.date.split('-')[0];
var before = tips.date.split('-')[1] || after; var before = tips.date.split('-')[1] || after;
if ((after.split('/')[0] <= now.getMonth() + 1 && now.getMonth() + 1 <= if ((after.split('/')[0] <= now.getMonth() + 1 &&
before.split('/')[0]) && now.getMonth() + 1 <= before.split('/')[0]) &&
(after.split('/')[1] <= now.getDate() && now.getDate() <= (after.split('/')[1] <= now.getDate() &&
before.split('/')[1])) { now.getDate() <= before.split('/')[1])) {
var text = tips.text; soloKanbanniang.showMessage(
if (Array.isArray( tips.text.replace('{year}', now.getFullYear()), 6000, true);
tips.text)) text = tips.text[Math.floor(Math.random() *
tips.text.length + 1) - 1];
text = text.render({year: now.getFullYear()});
showMessage(text, 6000, true);
} }
}); });
}, },
}); });
},
_initMenu: function() {
$('#soloKanbanniangHome').click(function() {
window.location = latkeConfig.servePath;
});
$('#soloKanbanniangRSS').click(function() {
window.location = latkeConfig.servePath + '/blog-articles-rss.do';
});
(function() { $('#soloKanbanniangGithub').click(function() {
window.location = 'https://github.com/b3log/solo';
});
$('#soloKanbanniangChat').click(function() {
soloKanbanniang.showChat();
});
$('#soloKanbanniangChange').click(function() {
// TODO
loadlive2d('soloKanbanniang', latkeConfig.staticServePath +
'/plugins/kanbanniang/assert/model.json',
soloKanbanniang.showMessage('我的新衣服好看嘛', 3000, true));
});
$('#soloKanbanniangClose').click(function() {
soloKanbanniang.showMessage('愿你有一天能与重要的人重逢', 1300, true);
sessionStorage.setItem('soloKanbanniang', 'close');
window.setTimeout(function() {
$('.solo-kanbanniang').hide();
}, 1300);
});
$('#soloKanbanniangPhoto').click(function() {
soloKanbanniang.showMessage('照好了嘛,是不是很可爱呢?', 5000, true);
window.Live2D.captureName = 'solo.png';
window.Live2D.captureFrame = true;
});
},
_initFirstMsg: function () {
var text; var text;
var referrer = document.createElement('a'); var referrer = document.createElement('a');
if (document.referrer !== '') { if (document.referrer !== '') {
referrer.href = document.referrer; referrer.href = document.referrer;
} }
if (referrer.href !== '' && referrer.hostname != 'imjad.cn') { if (referrer.href !== '' && referrer.hostname !== latkeConfig.servePath.split('//')[1].split(':')[0]) {
var referrer = document.createElement('a'); var referrer = document.createElement('a');
referrer.href = document.referrer; referrer.href = document.referrer;
text = 'Hello! 来自 <span style="color:#0099cc;">' + referrer.hostname + text = 'Hello! 来自 <span style="color:#4285f4;">' + referrer.hostname +
'</span> 的朋友'; '</span> 的朋友';
var domain = referrer.hostname.split('.')[1]; var domain = referrer.hostname.split('.')[1];
if (domain == 'baidu') { if (domain == 'baidu') {
text = 'Hello! 来自 百度搜索 的朋友<br>你是搜索 <span style="color:#0099cc;">' + text = 'Hello! 来自 百度搜索 的朋友<br>你是搜索 <span style="color:#4285f4;">' +
referrer.search.split('&wd=')[1].split('&')[0] + '</span> 找到的我吗?'; referrer.search.split('&wd=')[1].split('&')[0] + '</span> 找到的我吗?';
} else if (domain == 'so') { } else if (domain == 'so') {
text = 'Hello! 来自 360搜索 的朋友<br>你是搜索 <span style="color:#0099cc;">' + text = 'Hello! 来自 360搜索 的朋友<br>你是搜索 <span style="color:#4285f4;">' +
referrer.search.split('&q=')[1].split('&')[0] + '</span> 找到的我吗?'; referrer.search.split('&q=')[1].split('&')[0] + '</span> 找到的我吗?';
} else if (domain == 'google') { } else if (domain == 'google') {
text = 'Hello! 来自 谷歌搜索 的朋友<br>欢迎阅读<span style="color:#0099cc;">『' + text = 'Hello! 来自 谷歌搜索 的朋友<br>欢迎阅读<span style="color:#4285f4;">『' +
document.title.split(' - ')[0] + '』</span>'; document.title.split(' - ')[0] + '』</span>';
} }
} else { } else {
if (window.location.href == 'https://imjad.cn/') { //如果是主页
var now = (new Date()).getHours(); var now = (new Date()).getHours();
if (now > 23 || now <= 5) { if (now > 23 || now <= 5) {
text = '你是夜猫子呀?这么晚还不睡觉,明天起的来嘛'; text = '你是夜猫子呀?这么晚还不睡觉,明天起的来嘛';
...@@ -163,106 +131,43 @@ $.ajax({ ...@@ -163,106 +131,43 @@ $.ajax({
} else { } else {
text = '嗨~ 快来逗我玩吧!'; text = '嗨~ 快来逗我玩吧!';
} }
} else {
$.getJSON('https://api.imjad.cn/interface/lastactivity/',
function(result) {
var now = result.now;
var lastActivity = result.ts;
var idle = now - lastActivity;
if (idle >= 60 * 60 * 24 * 30) {
text = '我家主人已经出门一个月了,可是到现在也没回来,不会是出什么事了吧,好担心啊';
} else if (idle >= 60 * 60 * 24 * 7) {
text = '我家主人已经出门一周了,到现在还没回来,你知道他去哪里了吗?';
} else if (idle >= 60 * 30) {
text = '我家主人' + formatSeconds(idle) +
'前来过,先看看<span style="color:#0099cc;">『' +
document.title.split(' - ')[0] + '』</span>吧,有想法可以在评论里留言哦~';
} else if (idle >= 60 * 2) {
text = '真是不巧,我家主人刚才还在,先看看<span style="color:#0099cc;">『' +
document.title.split(' - ')[0] + '』</span>吧,有想法可以在评论里留言哦~';
} else {
text = '太巧了!我家主人正好在家,对<span style="color:#0099cc;">『' +
document.title.split(' - ')[0] +
'』</span>有什么想法吗?在评论里留言吧,相信很快就会有回复的说~';
}
showMessage(text, 10000);
});
}
} }
showMessage(text, 6000); soloKanbanniang.showMessage(text, 6000);
})(); },
init: function() {
window.hitokotoTimer = window.setInterval(showHitokoto, 30000); this._initTips();
this._initMenu();
this._initFirstMsg();
window.setInterval(soloKanbanniang.showChat, 30000);
var re = /solo/;
console.log(re);
re.toString = function() {
soloKanbanniang.showMessage('哈哈,你打开了控制台,是想要看看我的秘密吗?', 5000, true);
return '';
};
function showHitokoto() { $(document).on('copy', function() {
soloKanbanniang.showMessage('你都复制了些什么呀,转载要记得加上出处哦', 5000, true);
});
},
showChat() {
$.getJSON( $.getJSON(
'https://api.imjad.cn/hitokoto/?cat=&charset=utf-8&length=55&encode=json', 'https://api.imjad.cn/hitokoto/?cat=&charset=utf-8&length=55&encode=json',
function(result) { function(result) {
showMessage(result.hitokoto, 5000); soloKanbanniang.showMessage(result.hitokoto, 5000);
}); });
} },
};
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];
//console.log(text);
if (flag) sessionStorage.setItem('waifu-text', text);
$('.waifu-tips').stop(); $(document).ready(function() {
$('.waifu-tips').html(text).fadeTo(200, 1); if (sessionStorage.getItem('soloKanbanniang') === 'close') {
if (timeout === null) timeout = 5000; $('.solo-kanbanniang').remove();
hideMessage(timeout); return;
} }
}
function hideMessage(timeout) {
$('.waifu-tips').stop().css('opacity', 1);
if (timeout === null) timeout = 5000;
window.setTimeout(function() {sessionStorage.removeItem('waifu-text');},
timeout);
$('.waifu-tips').delay(timeout).fadeTo(200, 0);
}
function loadRandModel() {
var modelJSON = '/usr/themes/Moricolor/assets/live2d/potionmaker/rand.php?v=0.0.1&_=' +
Date.now();
localStorage.setItem('modelJSON', modelJSON);
loadlive2d('live2d', modelJSON, console.log('live2d', '模型加载完成'));
}
function formatSeconds(value) { soloKanbanniang.init();
var seconds = parseInt(value);// 秒
var minutes = 0;
var hours = 0;
var days = 0;
if (seconds > 60) {
minutes = parseInt(seconds / 60);
seconds = parseInt(seconds % 60);
if (minutes > 60) {
hours = parseInt(minutes / 60);
minutes = parseInt(minutes % 60);
if (hours > 24) {
days = parseInt(hours / 24);
hours = parseInt(hours % 24);
}
}
}
var result = '';
if (minutes > 0)
result = '' + parseInt(minutes) + '';
if (hours > 0 && hours <= 24)
result = '' + parseInt(hours) + '小时' + result;
if (days > 0)
result = '' + parseInt(days) + '' + result;
return result;
}
$(document).ready(function() {
loadlive2d('soloKanbanniang', latkeConfig.staticServePath + loadlive2d('soloKanbanniang', latkeConfig.staticServePath +
'/plugins/kanbanniang/assert/model.json'); '/plugins/kanbanniang/assert/model.json');
}); });
\ No newline at end of file
{ {
"mouseover": [ "mouseover": [
{ {
"selector": ".container a[href^='http']", "selector": "a[href^='http']",
"text": ["要看看 <span style=\"color:#0099cc;\">{text}</span> 么?"] "text": "要看看 <span style=\"color:#4285f4;\">{text}</span> 么?"
}, },
{ {
"selector": ".fui-home", "selector": "#soloKanbanniangRSS",
"text": ["点击前往首页,想回到上一页可以使用浏览器的后退功能哦"] "text": "喜欢我也要喜欢我的主人哦,记得点击<span style=\"color:#4285f4;\">订阅</span>!"
}, },
{ {
"selector": "#tor_show", "selector": "#soloKanbanniangHome",
"text": ["翻页比较麻烦吗,点击可以显示这篇文章的目录呢"] "text": "点击前往<span style=\"color:#4285f4;\">首页</span>,想回到上一页可以使用浏览器的后退功能哦"
}, },
{ {
"selector": "#comment_go,.fui-chat", "selector": "#soloKanbanniangChat",
"text": ["想要去评论些什么吗?"] "text": "猜猜我要说些什么"
}, },
{ {
"selector": "#night_mode", "selector": "textarea",
"text": ["深夜时要爱护眼睛呀"] "text": "认真填写哦,垃圾评论是禁止事项"
}, },
{ {
"selector": "#qrcode", "selector": "#soloKanbanniangChange",
"text": ["手机扫一下就能继续看,很方便呢"] "text": "喜欢换装PLAY吗?"
}, },
{ {
"selector": ".comment_reply", "selector": "#soloKanbanniangClose",
"text": ["要吐槽些什么呢"] "text": "到了要说再见的时候了吗"
}, },
{ {
"selector": "#back-to-top", "selector": "#soloKanbanniangPhoto",
"text": ["回到开始的地方吧"] "text": "你要给我拍照呀,一二三~茄子~~"
}, },
{ {
"selector": "#author", "selector": "#soloKanbanniang",
"text": ["该怎么称呼你呢"] "text": "鼠…鼠标放错地方了!"
}, },
{ {
"selector": "#mail", "selector": "#soloKanbanniangGithub",
"text": ["留下你的邮箱,不然就是无头像人士了"] "text": "给颗小星星奖励一下我吧🌟"
}, },
{ {
"selector": "#url", "selector": "#soloKanbanniangRSS",
"text": ["你的家在哪里呢,好让我去参观参观"] "text": "喜欢我就快点击<span style=\"color:#4285f4;\">订阅</span>我的主人哦"
},
{
"selector": "#textarea",
"text": ["认真填写哦,垃圾评论是禁止事项"]
},
{
"selector": ".OwO-logo",
"text": ["要插入一个表情吗"]
},
{
"selector": "#csubmit",
"text": ["要提交了吗,首次评论需要审核,请耐心等待~"]
},
{
"selector": ".ImageBox",
"text": ["点击图片可以放大呢"]
},
{
"selector": "input[name=s]",
"text": ["找不到想看的内容?搜索看看吧"]
},
{
"selector": ".previous",
"text": ["去上一页看看吧"]
},
{
"selector": ".next",
"text": ["去下一页看看吧"]
},
{
"selector": ".dropdown-toggle",
"text": ["这里是菜单"]
},
{
"selector": ".about-avatar",
"text": ["忍前辈也很可爱呢", "主人更在意哪一个呢"]
},
{
"selector": ".about-avatar + script + blockquote",
"text": ["这是诗人「海子」作的『黑夜的献诗』里的一部分"]
},
{
"selector": "#htmer_time",
"text": ["已经过了这么久了呀,日子过得好快呢", "<span style=\"color:#0099cc;\">{text}</span> 是多久来着…<br>1,2,3……有好多好多天呢!"]
},
{
"selector": ".about-avatar ~ ul",
"text": ["这里记录着我搬家的历史呢"]
},
{
"selector": ".about-avatar ~ ul + h5 + p",
"text": ["普通的自我介绍"]
},
{
"selector": ".about-avatar ~ ul + h5 + p + blockquote",
"text": ["发现主人出没地点!", "这里是主人的联系方式"]
},
{
"selector": ".donate-qrcode",
"text": ["主人最近在吃土呢,很辛苦的样子。给他一些钱钱吧~"]
},
{
"selector": "c-player a.play-icon",
"text": ["想要听点音乐吗"]
},
{
"selector": "c-player div.time",
"text": ["在这里可以调整<span style=\"color:#0099cc;\">播放进度</span>呢"]
},
{
"selector": "c-player div.volume",
"text": ["在这里可以调整<span style=\"color:#0099cc;\">音量</span>呢"]
},
{
"selector": "c-player div.list-button",
"text": ["<span style=\"color:#0099cc;\">播放列表</span>里都有什么呢"]
},
{
"selector": "c-player div.lyric-button",
"text": ["有<span style=\"color:#0099cc;\">歌词</span>的话就能跟着一起唱呢"]
},
{
"selector": "#getT",
"text": ["这里有一些关于我家主人的秘密哦,要不要看看呢"]
},
{
"selector": "h4:contains(网易云音乐)",
"text": ["这里是我家主人的网易云日推,听听看吧~"]
},
{
"selector": "h4:contains(Pixiv)",
"text": ["这里是我家主人最近在P站的收藏,有你喜欢的嘛"]
},
{
"selector": "h4:contains(我的追番)",
"text": ["这里是我家主人最近在追更的动画,有你也在追的嘛"]
},
{
"selector": ".waifu-tool .fui-home",
"text": ["回首页看看吧"]
},
{
"selector": ".waifu-tool .fui-eye",
"text": ["深夜时要爱护眼睛呀"]
},
{
"selector": ".waifu-tool .fui-chat",
"text": ["猜猜我要说些什么"]
},
{
"selector": ".waifu-tool .fui-user",
"text": ["喜欢换装PLAY吗?"]
},
{
"selector": ".waifu-tool .fui-info-circle",
"text": ["想要知道更多有关我的事吗?"]
},
{
"selector": ".waifu-tool .fui-cross",
"text": ["到了要说再见的时候了吗"]
},
{
"selector": ".waifu-tool .fui-photo",
"text": ["你要给我拍照呀,一二三~茄子~~"]
},
{
"selector": ".waifu #live2d",
"text": ["干嘛呢你,快把手拿开", "鼠…鼠标放错地方了!"]
} }
], ],
"click": [ "click": [
{ {
"selector": ".waifu #live2d", "selector": "#soloKanbanniang",
"text": ["是…是不小心碰到了吧", "萝莉控是什么呀", "你看到我的小熊了吗", "再摸的话我可要报警了!⌇●﹏●⌇", "110吗,这里有个变态一直在摸我(ó﹏ò。)"] "text": ["是…是不小心碰到了吧", "萝莉控是什么呀", "你看到我的小熊了吗", "再摸的话我可要报警了!⌇●﹏●⌇", "110吗,这里有个变态一直在摸我(ó﹏ò。)"]
} }
], ],
"seasons": [ "seasons": [
{ {
"date": "01/01", "date": "01/01",
"text": "<span style=\"color:#0099cc;\">元旦</span>了呢,新的一年又开始了,{year}年打算做些什么呢~" "text": "<span style=\"color:#4285f4;\">元旦</span>了呢,新的一年又开始了,{year}年打算做些什么呢~"
}, },
{ {
"date": "02/14", "date": "02/14",
"text": "又是一年<span style=\"color:#0099cc;\">情人节</span>,{year}年找到对象了嘛~" "text": "又是一年<span style=\"color:#4285f4;\">情人节</span>,{year}年找到对象了嘛~"
}, },
{ {
"date": "03/08", "date": "03/08",
"text": "今天是<span style=\"color:#0099cc;\">妇女节</span>!" "text": "今天是<span style=\"color:#4285f4;\">妇女节</span>!"
}, },
{ {
"date": "03/12", "date": "03/12",
"text": "今天是<span style=\"color:#0099cc;\">植树节</span>,要保护环境呀" "text": "今天是<span style=\"color:#4285f4;\">植树节</span>,要保护环境呀"
}, },
{ {
"date": "04/01", "date": "04/01",
...@@ -202,35 +74,35 @@ ...@@ -202,35 +74,35 @@
}, },
{ {
"date": "05/01", "date": "05/01",
"text": "今天是<span style=\"color:#0099cc;\">五一劳动节</span>,计划好假期去哪里了吗~" "text": "今天是<span style=\"color:#4285f4;\">五一劳动节</span>,计划好假期去哪里了吗~"
}, },
{ {
"date": "06/01", "date": "06/01",
"text": "<span style=\"color:#0099cc;\">儿童节</span>了呢,快活的时光总是短暂,要是永远长不大该多好啊…" "text": "<span style=\"color:#4285f4;\">儿童节</span>了呢,快活的时光总是短暂,要是永远长不大该多好啊…"
}, },
{ {
"date": "09/03", "date": "09/03",
"text": "<span style=\"color:#0099cc;\">中国人民抗日战争胜利纪念日</span>,铭记历史、缅怀先烈、珍爱和平、开创未来。" "text": "<span style=\"color:#4285f4;\">中国人民抗日战争胜利纪念日</span>,铭记历史、缅怀先烈、珍爱和平、开创未来。"
}, },
{ {
"date": "09/10", "date": "09/10",
"text": "<span style=\"color:#0099cc;\">教师节</span>,在学校要给老师问声好呀~" "text": "<span style=\"color:#4285f4;\">教师节</span>,在学校要给老师问声好呀~"
}, },
{ {
"date": "10/01", "date": "10/01",
"text": "<span style=\"color:#0099cc;\">国庆节</span>,新中国已经成立69年了呢" "text": "<span style=\"color:#4285f4;\">国庆节</span>,新中国已经成立69年了呢"
}, },
{ {
"date": "11/05-11/12", "date": "11/05-11/12",
"text": "今年的<span style=\"color:#0099cc;\">双十一</span>是和谁一起过的呢~" "text": "今年的<span style=\"color:#4285f4;\">双十一</span>是和谁一起过的呢~"
}, },
{ {
"date": "12/20-12/28", "date": "12/20-12/28",
"text": "这几天是<span style=\"color:#0099cc;\">圣诞节</span>,主人肯定又去剁手买买买了~" "text": "这几天是<span style=\"color:#4285f4;\">圣诞节</span>,主人肯定又去剁手买买买了~"
}, },
{ {
"date": "12/29-12/31", "date": "12/29-12/31",
"text": "要<span style=\"color:#0099cc;\">年终</span>了哦~ 年初许下的愿望都实现了吗?" "text": "要<span style=\"color:#4285f4;\">年终</span>了哦~ 年初许下的愿望都实现了吗?"
} }
] ]
} }
\ No newline at end of file
...@@ -17,20 +17,33 @@ ...@@ -17,20 +17,33 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
--> -->
<link type="text/css" rel="stylesheet" href="${staticServePath}/plugins/kanbanniang/assert/index.css"/>
<script src="${staticServePath}/plugins/kanbanniang/assert/live2d.js"></script> <script src="${staticServePath}/plugins/kanbanniang/assert/live2d.js"></script>
<script async src="${staticServePath}/plugins/kanbanniang/assert/index.js"></script> <script async src="${staticServePath}/plugins/kanbanniang/assert/index.js"></script>
<div class="solo-kanbanniang"> <div class="solo-kanbanniang">
<div class="solo-kanbanniang__tip"></div> <div class="solo-kanbanniang__tip"></div>
<canvas id="soloKanbanniang" width="280" height="250"></canvas> <canvas id="soloKanbanniang" width="280" height="250"></canvas>
<div class="solo-kanbanniang__tool"> <div class="solo-kanbanniang__tool">
<svg id="icon-home" viewBox="0 0 32 32" width="100%" height="100%"> <svg id="soloKanbanniangHome" viewBox="0 0 32 32" width="100%" height="100%">
<path d="M32 18.967l-16-12.42-16 12.42v-5.064l16-12.42 16 12.42zM28 18.516v12h-8v-8h-8v8h-8v-12l12-9z"></path> <path d="M32 18.967l-16-12.42-16 12.42v-5.064l16-12.42 16 12.42zM28 18.516v12h-8v-8h-8v8h-8v-12l12-9z"></path>
</svg> </svg>
<span class="fui-eye">eye</span> <svg id="soloKanbanniangRSS" viewBox="0 0 1024 1024" width="32" height="32">
<span class="fui-chat">chat</span> <path d="M320.364 768q0 45.728-32 77.728t-77.728 32-77.728-32-32-77.728 32-77.728 77.728-32 77.728 32 32 77.728zM612.94 838.272q1.152 16-9.728 27.424-10.272 12-26.848 12h-77.152q-14.272 0-24.576-9.44t-11.424-23.712q-12.576-130.848-105.44-223.712t-223.712-105.44q-14.272-1.152-23.712-11.424t-9.44-24.576V402.24q0-16.576 12-26.848 9.728-9.728 24.576-9.728h2.848q91.424 7.424 174.848 46.016t148 103.712q65.152 64.576 103.712 148t46.016 174.848z m292.576 1.152q1.152 15.424-10.272 26.848-10.272 11.424-26.272 11.424h-81.728q-14.848 0-25.44-10.016t-11.136-24.288q-6.848-122.848-57.728-233.44t-132.288-192-192-132.288-233.44-58.272q-14.272-0.576-24.288-11.136t-10.016-24.864V109.664q0-16 11.424-26.272 10.272-10.272 25.152-10.272h1.728q149.728 7.424 286.56 68.576t243.136 168q106.848 106.272 168 243.136t68.576 286.56z"></path>
<span class="fui-user">user</span> </svg>
<span class="fui-photo">photo</span> <svg id="soloKanbanniangChat" viewBox="0 0 1024 1024" width="32" height="32">
<span class="fui-info-circle">circle</span> <path d="M802.42709 96.163153H219.476155c-84.48109 0-154.896836 71.746044-154.896836 157.840888v393.119449c0 86.072331 70.415746 157.819398 154.896836 157.819399h214.038818V925.470963s22.526039 40.168862 64.767096 5.734608c30.965246-25.819039 126.721123-91.828428 171.775248-123.385145h132.369773c84.502579 0 154.896836-83.21526 154.896836-157.839865V251.125481c0-86.094844-70.394257-154.962328-154.896836-154.962328zM301.144176 518.002714c-39.427988 0-70.416769-31.576159-70.416769-71.746044 0-40.168862 30.988782-71.746044 70.416769-71.746044 39.426965 0 70.393233 31.577183 70.393234 71.746044 0 40.169885-30.966269 71.746044-70.393234 71.746044z m208.411657 0c-39.450501 0-70.415746-31.576159-70.415746-71.746044 0-40.168862 30.965246-71.746044 70.415746-71.746044 39.405475 0 70.394257 31.577183 70.394257 71.746044 0 40.169885-30.988782 71.746044-70.394257 71.746044z m211.203236 0c-39.426965 0-70.416769-31.576159-70.416769-71.746044 0-40.168862 30.988782-71.746044 70.416769-71.746044s70.415746 31.577183 70.415746 71.746044c-0.001023 40.169885-30.988782 71.746044-70.415746 71.746044z"></path>
<span class="fui-cross">cross</span> </svg>
<svg id="soloKanbanniangChange" viewBox="0 0 1024 1024" width="32" height="32">
<path d="M936.672 193.216l-226.88-64c-8.704-2.528-18.112-1.12-25.824 3.776-7.68 4.864-12.896 12.736-14.432 21.728C655.712 236.928 595.328 288 512 288c-71.424 0-142.464-103.296-163.776-143.104-7.136-13.28-22.528-19.84-37.024-15.68l-224 64C73.472 197.152 64 209.728 64 224v256a31.93 31.93 0 0 0 11.712 24.736c7.392 6.08 17.152 8.512 26.56 6.624L224 487.04V832c0 52.928 43.072 96 96 96h384c52.928 0 96-43.072 96-96V519.04l121.728 24.352c9.44 1.92 19.2-0.544 26.56-6.624C955.68 530.656 960 521.6 960 512V224c0-14.336-9.536-26.912-23.328-30.784zM672 800H352c-17.664 0-32-14.304-32-32s14.336-32 32-32h320c17.696 0 32 14.304 32 32s-14.304 32-32 32z"></path>
</svg>
<svg id="soloKanbanniangPhoto" viewBox="0 0 1024 1024" width="32" height="32">
<path d="M898.048 258.048q23.552-1.024 46.592 9.216t40.96 27.136 28.672 39.424 10.752 46.08l0 390.144q0 24.576-10.752 47.104t-28.672 40.448-40.96 28.16-47.616 10.24l-697.344 0q-24.576 0-48.64-10.24t-42.496-27.648-29.696-40.448-11.264-48.64l0-381.952q0-22.528 10.752-45.568t28.672-41.472 39.936-30.208 44.544-11.776l63.488 0 13.312-83.968q3.072-20.48 18.432-32.768t34.816-12.288l456.704 0q19.456 0 34.304 10.752t16.896 34.304l14.336 83.968 54.272 0zM548.864 712.704q40.96 0 77.824-15.872t63.488-42.496 42.496-62.976 15.872-77.312-15.872-77.312-42.496-62.976-63.488-42.496-77.824-15.872-77.312 15.872-63.488 42.496-43.008 62.976-15.872 77.312 15.872 77.312 43.008 62.976 63.488 42.496 77.312 15.872z"></path>
</svg>
<svg id="soloKanbanniangGithub" viewBox="0 0 1024 1024" width="32" height="32">
<path d="M1024 524.8c0 114.346667-32.554667 217.216-97.706667 308.565333-65.066667 91.306667-149.162667 154.538667-252.288 189.610667-11.989333 2.304-20.778667 0.682667-26.325333-4.778667a27.605333 27.605333 0 0 1-8.362667-20.48v-144.213333c0-44.16-11.52-76.501333-34.645333-97.024 25.344-2.730667 48.085333-6.826667 68.309333-12.288a268.629333 268.629333 0 0 0 62.72-26.666667 187.434667 187.434667 0 0 0 53.973334-45.44c14.421333-18.005333 26.197333-41.898667 35.328-71.765333 9.088-29.824 13.653333-64.128 13.653333-102.826667 0-55.125333-17.536-102.058667-52.650667-140.8 16.426667-41.429333 14.677333-87.893333-5.333333-139.392-12.458667-4.096-30.464-1.578667-54.016 7.509334a355.328 355.328 0 0 0-61.312 30.08L640 271.274667a462.336 462.336 0 0 0-128-17.749334c-43.989333 0-86.656 5.930667-128 17.749334a589.824 589.824 0 0 0-28.330667-18.432c-11.776-7.253333-30.336-16.042667-55.68-26.325334-25.344-10.24-44.416-13.312-57.301333-9.216-19.584 51.498667-21.12 97.962667-4.693333 139.434667-35.114667 38.698667-52.650667 85.632-52.650667 140.757333 0 38.698667 4.565333 72.874667 13.653333 102.485334 9.130667 29.610667 20.778667 53.546667 34.986667 71.765333 14.250667 18.218667 32.128 33.493333 53.674667 45.781333 21.546667 12.288 42.453333 21.205333 62.677333 26.666667 20.224 5.461333 43.008 9.557333 68.309333 12.288-17.749333 16.384-28.629333 39.850667-32.64 70.4a130.005333 130.005333 0 0 1-29.994666 10.24c-10.666667 2.261333-23.338667 3.413333-37.973334 3.413333-14.72 0-29.269333-4.906667-43.690666-14.677333-14.464-9.813333-26.794667-24.064-36.992-42.709333a109.226667 109.226667 0 0 0-32.341334-35.541334c-13.141333-9.130667-24.106667-14.592-33.024-16.426666l-13.312-2.048c-9.344 0-15.786667 1.024-19.328 3.072-3.584 2.090667-4.693333 4.693333-3.328 7.893333 1.28 3.157333 3.328 6.4 5.973334 9.557333 2.688 3.2 5.546667 5.930667 8.661333 8.192l4.693333 3.413334c9.770667 4.565333 19.413333 13.226667 29.013334 25.984 9.514667 12.757333 16.512 24.362667 20.992 34.858666l6.656 15.701334c5.76 17.322667 15.530667 31.317333 29.312 42.026666 13.781333 10.666667 28.672 17.536 44.672 20.48 16 2.986667 31.445333 4.565333 46.336 4.821334 14.890667 0.213333 27.221333-0.597333 36.992-2.389334l15.36-2.730666c0 17.28 0.085333 37.546667 0.298666 60.8l0.341334 36.906666a27.050667 27.050667 0 0 1-8.661334 20.48c-5.76 5.461333-14.677333 7.082667-26.666666 4.778667-103.125333-35.072-187.221333-98.261333-252.330667-189.610667C32.554667 742.058667 0 639.146667 0 524.8c0-95.232 22.869333-183.04 68.693333-263.466667A516.266667 516.266667 0 0 1 254.976 70.4C333.44 23.466667 419.114667 0 512 0c92.885333 0 178.56 23.466667 256.981333 70.4a516.266667 516.266667 0 0 1 186.368 190.976C1001.130667 341.802667 1024 429.653333 1024 524.842667z"></path>
</svg>
<svg id="soloKanbanniangClose" viewBox="0 0 1024 1024" width="32" height="32">
<path d="M517.572566143763 1018.6748601482986C238.26554897656422 1018.6748601482986 11.897910175114305 792.2714997690043 11.897910175114305 513.0002041796496c0-279.3070171671984 226.36763880144977-505.71037754649296 505.6746559686481-505.71037754649296 279.2712955893538 0 505.6746559686481 226.40336037929444 505.6746559686481 505.71037754649296C1023.2472221124112 792.2714997690043 796.8795833109612 1018.6748601482986 517.572566143763 1018.6748601482986zM754.7281214542927 339.25044954334646c13.752807470184345-13.752807470184345 9.680547595895998-40.186775075214015-9.073280772537204-58.94060344364717l-2.143294670678079-2.1075730928334457c-18.7538283684332-18.7538283684332-45.15207439561819-22.861809820566194-58.90488186580257-9.073280772537204l-168.21291007038468 168.24863164822932-180.42968969324974-180.46541127109438c-13.967136937252159-13.967136937252159-40.72259874288353-9.823433907274534-59.72647815622916 9.216167083915742l-2.143294670678079 2.143294670678079c-19.039600991190277 19.003879413345654-23.111860865478626 45.75934121897699-9.180445506071107 59.655035000539876l180.42968969324974 180.46541127109438-176.07165719620428 176.03593561835962c-13.788529048028984 13.824250625873615-9.716269173740633 40.151053497369375 9.073280772537204 58.94060344364717l2.1075730928334457 2.1075730928334457c18.7538283684332 18.7538283684332 45.15207439561819 22.897531398410823 58.90488186580257 9.073280772537204l176.10737877404887-176.10737877404887 170.39192631890742 170.42764789675192c13.967136937252159 13.931415359407513 40.686877165038865 9.85915548511917 59.690756578384516-9.180445506071107l2.1790162485227142-2.1790162485227142c19.039600991190277-18.968157835501014 23.147582443323273-45.72361964113239 9.180445506071107-59.690756578384516l-170.39192631890742-170.42764789675192L754.7281214542927 339.25044954334646z"></path>
</svg>
</div> </div>
</div> </div>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment