937 lines
44 KiB
HTML
937 lines
44 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="ja"><head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>狼の質問箱 | 匿名質問箱</title>
|
|
<meta name="msvalidate.01" content="2F185E8E63C93635F50B3574F3B31E42">
|
|
<meta name="description" content="狼の質問箱は登録不要で使える匿名質問箱。誰でも匿名で質問でき、安心してやり取りできる場所です。">
|
|
<meta name="keywords" content="匿名質問箱,質問箱,匿名質問,狼の質問箱,匿名で質問,匿名Q&A">
|
|
|
|
<script>
|
|
(function () {
|
|
var m = document.cookie.match(/(?:^|;\s*)theme=([^;]*)/);
|
|
if (m && m[1] === 'dark') document.documentElement.setAttribute('data-theme', 'dark');
|
|
})();
|
|
</script>
|
|
|
|
<link rel="preconnect" href="https://r2.337845818.best" crossorigin="">
|
|
<link rel="preconnect" href="https://cdnjs.snrat.com" crossorigin="">
|
|
|
|
<link rel="stylesheet" href="https://cdnjs.snrat.com/ajax/libs/uikit/3.3.3/css/uikit.min.css">
|
|
|
|
<link rel="stylesheet" href="/static/css/base.css?v=20261019d">
|
|
|
|
<link rel="stylesheet" href="https://r2.337845818.best/tamabox/cdn/waline/client/v2/waline-no-commits.css" media="all" onload="this.media='all'">
|
|
<script defer="" src="https://cdnjs.snrat.com/ajax/libs/uikit/3.3.3/js/uikit.min.js"></script>
|
|
<script defer="" src="https://cdnjs.snrat.com/ajax/libs/uikit/3.3.3/js/uikit-icons.min.js"></script>
|
|
|
|
<script defer="" src="https://cdnjs.snrat.com/ajax/libs/dayjs/1.10.8/dayjs.min.js"></script>
|
|
<script defer="" src="https://cdnjs.snrat.com/ajax/libs/alpinejs/3.9.0/cdn.min.js"></script>
|
|
|
|
|
|
<script defer="" src="https://cdnjs.snrat.com/ajax/libs/waline/2.15.8/waline.js"></script>
|
|
|
|
|
|
<style>
|
|
.captcha-equation-box {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
background: #f0f2f5;
|
|
border: 1px solid #dcdcdc;
|
|
border-radius: 8px;
|
|
padding: 8px 8px 8px 16px;
|
|
gap: 6px;
|
|
transition: border-color 0.2s;
|
|
}
|
|
.captcha-equation-box:focus-within {
|
|
border-color: #1e87f0;
|
|
box-shadow: 0 0 0 3px rgba(30,135,240,0.12);
|
|
}
|
|
.math-captcha-modal-question {
|
|
font-size: 1.4rem;
|
|
font-family: "Courier New", monospace;
|
|
font-weight: 700;
|
|
color: #333;
|
|
letter-spacing: 1px;
|
|
white-space: nowrap;
|
|
}
|
|
#captcha-modal-answer {
|
|
width: 80px;
|
|
padding: 6px 10px;
|
|
text-align: center;
|
|
font-size: 1.2rem;
|
|
font-family: "Courier New", monospace;
|
|
font-weight: 600;
|
|
border: 1px solid #ccc;
|
|
border-radius: 5px;
|
|
outline: none;
|
|
transition: border-color 0.15s, box-shadow 0.15s;
|
|
background: #fff;
|
|
}
|
|
#captcha-modal-answer:focus {
|
|
border-color: #1e87f0;
|
|
box-shadow: 0 0 0 2px rgba(30,135,240,0.2);
|
|
}
|
|
|
|
#captcha-modal-answer::-webkit-inner-spin-button,
|
|
#captcha-modal-answer::-webkit-outer-spin-button {
|
|
-webkit-appearance: none;
|
|
margin: 0;
|
|
}
|
|
#captcha-modal-answer {
|
|
-moz-appearance: textfield;
|
|
}
|
|
</style>
|
|
|
|
|
|
|
|
|
|
|
|
<meta property="og:site_name" content="狼の質問箱 | 匿名質問箱">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:title" content="狼の質問箱 | 匿名質問箱">
|
|
<meta property="og:url" content="https://box-dev-api.337845818.best/">
|
|
<meta property="og:description" content="狼の質問箱は登録不要で使える匿名質問箱。誰でも匿名で質問でき、安心してやり取りできる場所です。">
|
|
|
|
|
|
<meta itemprop="image" content="https://r2.337845818.best/tamabox/tamabox_low.png">
|
|
<meta name="msapplication-TileImage" content="https://r2.337845818.best/tamabox/tamabox_low.png">
|
|
<link rel="shortcut icon" href="https://r2.337845818.best/tamabox/tamabox_low.png">
|
|
<link rel="apple-touch-icon" href="https://r2.337845818.best/tamabox/tamabox_low.png">
|
|
<link rel="icon" sizes="192x192" href="https://r2.337845818.best/tamabox/tamabox_low.png">
|
|
<meta name="twitter:image:src" content="https://r2.337845818.best/tamabox/tamabox_low.png">
|
|
|
|
|
|
|
|
<meta name="google-site-verification" content="fEPwRRJfiGsgwc5SINBQwZhPK8F0cwRaOvRx0YRurI4">
|
|
|
|
<script>
|
|
window.addEventListener("load", function () {
|
|
var s = document.createElement("script");
|
|
s.src = "https://mami.shiroko.one/tamami.js";
|
|
s.setAttribute("data-website-id", "c42ebe8b-9281-4da0-83a4-8f18b3e710fe");
|
|
document.body.appendChild(s);
|
|
});
|
|
</script>
|
|
<style id="waline-darkmode"></style></head>
|
|
<body>
|
|
<script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
window.tbRenderQR = function (el, getOptions) {
|
|
if (!el || typeof QRCode === 'undefined') return;
|
|
var opts = getOptions();
|
|
function remoteOf(o, key) {
|
|
var v = o[key];
|
|
return (typeof v === 'string' && v.indexOf('http') === 0) ? v : '';
|
|
}
|
|
var good = window._tbQrGood || (window._tbQrGood = {});
|
|
var bad = window._tbQrBad || (window._tbQrBad = {});
|
|
|
|
function layerState(url) { return !url ? '' : (good[url] ? 1 : (bad[url] ? 0 : null)); }
|
|
var layers = [
|
|
{ url: remoteOf(opts, 'logo'), st: null, present: function (o, on) {
|
|
if (on) { } else { o.logo = undefined; o.logoWidth = undefined; o.logoHeight = undefined; o.logoBackgroundTransparent = undefined; }
|
|
} },
|
|
{ url: remoteOf(opts, 'backgroundImage'), st: null, present: function (o, on) {
|
|
if (on) { } else { o.backgroundImage = undefined; o.backgroundImageAlpha = undefined; }
|
|
} }
|
|
];
|
|
var needProbe = false;
|
|
for (var i = 0; i < layers.length; i++) {
|
|
layers[i].st = layerState(layers[i].url);
|
|
if (layers[i].st === null) needProbe = true;
|
|
}
|
|
function paint(states) {
|
|
var o = {};
|
|
for (var k in opts) o[k] = opts[k];
|
|
for (var j = 0; j < layers.length; j++) layers[j].present(o, states[j] === 1);
|
|
el.innerHTML = '';
|
|
new QRCode(el, o);
|
|
}
|
|
|
|
var initStates = [];
|
|
for (var n = 0; n < layers.length; n++) initStates.push(layers[n].st === 1 ? 1 : 0);
|
|
paint(initStates);
|
|
if (!needProbe) return;
|
|
|
|
var pending = 0, cross = opts.crossOrigin || 'anonymous';
|
|
layers.forEach(function (L) {
|
|
if (L.st !== null) return;
|
|
pending++;
|
|
var im = new Image();
|
|
im.onload = function () { good[L.url] = true; L.st = 1; onDone(); };
|
|
im.onerror = function () { bad[L.url] = true; L.st = 0; onDone(); };
|
|
if (cross) im.crossOrigin = cross;
|
|
im.src = L.url;
|
|
});
|
|
function onDone() {
|
|
if (--pending > 0) return;
|
|
var finalStates = [];
|
|
for (var m = 0; m < layers.length; m++) finalStates.push(layers[m].st === 1 ? 1 : 0);
|
|
var changed = false;
|
|
for (var q = 0; q < finalStates.length; q++) if (finalStates[q] !== initStates[q]) changed = true;
|
|
if (changed) paint(finalStates);
|
|
}
|
|
|
|
setTimeout(function () { if (pending > 0) { pending = 0; onDone(); } }, 3000);
|
|
};
|
|
</script>
|
|
<nav class="uk-navbar-container uk-margin tb-navbar uk-navbar" uk-navbar="">
|
|
<div class="uk-navbar-center">
|
|
<div class="uk-navbar-center-left">
|
|
<div>
|
|
<ul class="uk-navbar-nav">
|
|
|
|
<li><a href="/explore">探索</a></li>
|
|
|
|
|
|
<li class="tb-mobile-balancer" aria-hidden="true"><a tabindex="-1" style="visibility:hidden">マイ</a></li>
|
|
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<a class="uk-navbar-item uk-logo" href="/"><span class="emoji-placeholder" aria-label="random animal">🐉</span>の質問箱</a>
|
|
|
|
<div class="uk-navbar-center-right">
|
|
<div>
|
|
|
|
<ul class="uk-navbar-nav">
|
|
<li><a href="/register">登録</a></li>
|
|
</ul>
|
|
<ul class="uk-navbar-nav">
|
|
<li><a href="/login">ログイン</a></li>
|
|
</ul>
|
|
|
|
|
|
|
|
<ul class="uk-navbar-nav tb-nav-utils">
|
|
<li>
|
|
<a href="#" aria-label="言語" title="言語" aria-expanded="false"><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="9"></circle><path d="M3.2 9h17.6M3.2 15h17.6"></path><ellipse cx="12" cy="12" rx="4" ry="9"></ellipse></svg></a>
|
|
<div class="uk-navbar-dropdown" uk-drop="mode: click; pos: bottom-right">
|
|
<ul class="uk-nav uk-navbar-dropdown-nav">
|
|
|
|
<li class="">
|
|
<a href="/i18n/zh-CN?to=%2F">简体中文</a>
|
|
</li>
|
|
|
|
<li class="">
|
|
<a href="/i18n/zh-TW?to=%2F">繁體中文</a>
|
|
</li>
|
|
|
|
<li class="">
|
|
<a href="/i18n/en?to=%2F">English</a>
|
|
</li>
|
|
|
|
<li class="uk-active">
|
|
<a href="/i18n/ja?to=%2F">日本語</a>
|
|
</li>
|
|
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
<ul class="uk-navbar-nav tb-nav-utils">
|
|
<li>
|
|
<a href="#" id="theme-toggle" title="ダーク/ライトモード切替" aria-label="ダーク/ライトモード切替">
|
|
<span class="tb-icon-light"><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M20.5 14.3A8.6 8.6 0 0 1 9.7 3.5a8.6 8.6 0 1 0 10.8 10.8z"></path></svg></span><span class="tb-icon-dark"><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="4"></circle><path d="M12 2.5v2M12 19.5v2M2.5 12h2M19.5 12h2M5.2 5.2l1.4 1.4M17.4 17.4l1.4 1.4M18.8 5.2l-1.4 1.4M6.6 17.4l-1.4 1.4"></path></svg></span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<script>
|
|
document.addEventListener("DOMContentLoaded", function() {
|
|
const emojis = ["🐺","🐗","🐻","🐨","🐼","🐹","🐭","🐰","🦊","🐮","🐷","🐽","🐸","🐒","🦍","🐔","🐧","🐦","🐤","🐦⬛","🦅","🦉","🦇","🐴","🦄","🐝","🦎","🦖","🦕","🐙","🦑","🦐","🦞","🦀","🐡","🐠","🐟","🐬","🐳","🐋","🦈","🐊","🐅","🐆","🦓","🦍","🦧","🐘","🦛","🦏","🐪","🐫","🦒","🦘","🐃","🐂","🐄","🐎","🐖","🐏","🐑","🦙","🐐","🦌","🐕","🐩","🦮","🐕🦺","🐈","🐋","🐳","🐬","🐉","🐲"];
|
|
const placeholder = document.querySelector('.emoji-placeholder');
|
|
if (placeholder) {
|
|
placeholder.textContent = emojis[Math.floor(Math.random() * emojis.length)];
|
|
}
|
|
});
|
|
</script>
|
|
|
|
|
|
<div id="tb-mobile-utils">
|
|
|
|
<select id="mobile-lang-select" class="uk-select uk-form-small" aria-label="言語">
|
|
|
|
<option value="zh-CN">简体中文</option>
|
|
|
|
<option value="zh-TW">繁體中文</option>
|
|
|
|
<option value="en">English</option>
|
|
|
|
<option value="ja" selected="">日本語</option>
|
|
|
|
</select>
|
|
|
|
<button type="button" id="theme-toggle-mobile" class="uk-button uk-button-default uk-button-small" title="ダーク/ライトモード切替" aria-label="ダーク/ライトモード切替">
|
|
<span class="tb-icon-light"><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M20.5 14.3A8.6 8.6 0 0 1 9.7 3.5a8.6 8.6 0 1 0 10.8 10.8z"></path></svg></span><span class="tb-icon-dark"><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="4"></circle><path d="M12 2.5v2M12 19.5v2M2.5 12h2M19.5 12h2M5.2 5.2l1.4 1.4M17.4 17.4l1.4 1.4M18.8 5.2l-1.4 1.4M6.6 17.4l-1.4 1.4"></path></svg></span>
|
|
</button>
|
|
</div>
|
|
|
|
<script>
|
|
(function() {
|
|
|
|
var THEME_COOKIE = 'theme';
|
|
function getTheme() {
|
|
var m = document.cookie.match(/(?:^|;\s*)theme=([^;]*)/);
|
|
return m ? m[1] : '';
|
|
}
|
|
function applyTheme(theme) {
|
|
if (theme === 'dark') {
|
|
document.documentElement.setAttribute('data-theme', 'dark');
|
|
} else {
|
|
document.documentElement.removeAttribute('data-theme');
|
|
}
|
|
}
|
|
function toggleTheme() {
|
|
var next = getTheme() === 'dark' ? 'light' : 'dark';
|
|
applyTheme(next);
|
|
var expires = new Date(Date.now() + 365 * 24 * 3600 * 1000).toUTCString();
|
|
document.cookie = THEME_COOKIE + '=' + next + '; path=/; max-age=' + (365 * 24 * 3600) + '; SameSite=Lax';
|
|
}
|
|
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
|
|
var buttons = document.querySelectorAll('#theme-toggle, #theme-toggle-mobile');
|
|
buttons.forEach(function(btn) {
|
|
btn.addEventListener('click', function(e) {
|
|
e.preventDefault();
|
|
toggleTheme();
|
|
});
|
|
});
|
|
|
|
|
|
var langSel = document.getElementById('mobile-lang-select');
|
|
if (langSel) {
|
|
langSel.addEventListener('change', function() {
|
|
if (!this.value) return;
|
|
var to = window.location.pathname + window.location.search;
|
|
window.location.href = '/i18n/' + encodeURIComponent(this.value) + '?to=' + encodeURIComponent(to);
|
|
});
|
|
}
|
|
});
|
|
})();
|
|
</script>
|
|
|
|
|
|
<div class="uk-container uk-container-xsmall">
|
|
|
|
|
|
|
|
<div id="math-captcha-modal" uk-modal="" class="uk-modal">
|
|
<div class="uk-modal-dialog uk-modal-body uk-text-center">
|
|
<h3 class="uk-modal-title">人機認証</h3>
|
|
<p class="uk-text-meta">以下の計算問題を解いて、ロボットでないことを証明してください</p>
|
|
<div class="captcha-equation-box">
|
|
<span id="captcha-modal-question" class="math-captcha-modal-question">読み込み中...</span>
|
|
<input type="number" id="captcha-modal-answer" placeholder="?" autocomplete="off" inputmode="numeric">
|
|
</div>
|
|
<div style="margin-top:6px;">
|
|
<button type="button" class="uk-button uk-button-text uk-text-small" id="captcha-modal-refresh">別の問題</button>
|
|
</div>
|
|
<div id="captcha-modal-error" class="uk-text-danger uk-text-small" style="display:none;min-height:20px;"></div>
|
|
<div class="uk-margin-small-top">
|
|
<button type="button" class="uk-button uk-button-primary" id="captcha-modal-submit">送信</button>
|
|
<button type="button" class="uk-button uk-button-default uk-modal-close">キャンセル</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
var CAPTCHA_I18N = {
|
|
loading: "読み込み中...",
|
|
loadFailed: "読み込み失敗",
|
|
loadRetry: "読み込み失敗、再試行してください",
|
|
inputAnswer: "答えを入力してください",
|
|
wrongAnswer: "答えが違います。もう一度計算してください",
|
|
verifyFailed: "認証失敗、再試行してください",
|
|
needPassword: "この質問箱にはパスワードが必要です",
|
|
needEmail: "通知を受け取るメールアドレスを入力してください"
|
|
};
|
|
</script>
|
|
|
|
<script>
|
|
(function() {
|
|
var captchaId = '';
|
|
var pendingForm = null;
|
|
var pendingNeedPassword = false;
|
|
var verifying = false;
|
|
|
|
function fetchCaptcha() {
|
|
var qEl = document.getElementById('captcha-modal-question');
|
|
var errEl = document.getElementById('captcha-modal-error');
|
|
var ansEl = document.getElementById('captcha-modal-answer');
|
|
qEl.textContent = CAPTCHA_I18N.loading;
|
|
fetch('/api/captcha/generate')
|
|
.then(function(r) { return r.json(); })
|
|
.then(function(data) {
|
|
if (data.code === 0 && data.data) {
|
|
captchaId = data.data.id;
|
|
qEl.textContent = data.data.question;
|
|
if (errEl) errEl.style.display = 'none';
|
|
if (ansEl) { ansEl.value = ''; ansEl.focus(); }
|
|
} else {
|
|
qEl.textContent = CAPTCHA_I18N.loadFailed;
|
|
}
|
|
})
|
|
.catch(function() {
|
|
qEl.textContent = CAPTCHA_I18N.loadRetry;
|
|
});
|
|
}
|
|
|
|
function getCSRFToken() {
|
|
var input = document.querySelector('input[name="_csrf"]');
|
|
return input ? input.value : '';
|
|
}
|
|
|
|
function doSubmit(form) {
|
|
|
|
var ans = document.getElementById('captcha-modal-answer').value.trim();
|
|
var hidden = form.querySelector('[name="g-recaptcha-response"]');
|
|
if (hidden) hidden.value = captchaId + ':' + (ans || '0');
|
|
|
|
UIkit.modal('#math-captcha-modal').hide();
|
|
|
|
|
|
if (pendingNeedPassword) {
|
|
UIkit.modal.prompt(CAPTCHA_I18N.needPassword, '', 'password')
|
|
.then(function(password) {
|
|
if (password) {
|
|
var pwInput = document.getElementById('ask_password_input');
|
|
if (pwInput) pwInput.value = password;
|
|
form.submit();
|
|
}
|
|
});
|
|
} else {
|
|
form.submit();
|
|
}
|
|
}
|
|
|
|
|
|
document.getElementById('captcha-modal-submit').addEventListener('click', function() {
|
|
if (verifying) return;
|
|
var ans = document.getElementById('captcha-modal-answer').value.trim();
|
|
if (!ans) {
|
|
var errEl = document.getElementById('captcha-modal-error');
|
|
errEl.textContent = CAPTCHA_I18N.inputAnswer;
|
|
errEl.style.display = 'block';
|
|
return;
|
|
}
|
|
verifying = true;
|
|
fetch('/api/captcha/verify', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
'X-CSRF-Token': getCSRFToken()
|
|
},
|
|
body: JSON.stringify({ id: captchaId, answer: parseInt(ans, 10) })
|
|
})
|
|
.then(function(r) { return r.json(); })
|
|
.then(function(data) {
|
|
verifying = false;
|
|
if (data.correct) {
|
|
if (pendingForm) doSubmit(pendingForm);
|
|
} else {
|
|
var errEl = document.getElementById('captcha-modal-error');
|
|
errEl.textContent = CAPTCHA_I18N.wrongAnswer;
|
|
errEl.style.display = 'block';
|
|
fetchCaptcha();
|
|
}
|
|
})
|
|
.catch(function() {
|
|
verifying = false;
|
|
var errEl = document.getElementById('captcha-modal-error');
|
|
errEl.textContent = CAPTCHA_I18N.verifyFailed;
|
|
errEl.style.display = 'block';
|
|
fetchCaptcha();
|
|
});
|
|
});
|
|
|
|
|
|
document.getElementById('captcha-modal-answer').addEventListener('keydown', function(e) {
|
|
if (e.key === 'Enter') {
|
|
e.preventDefault();
|
|
document.getElementById('captcha-modal-submit').click();
|
|
}
|
|
});
|
|
|
|
|
|
document.getElementById('captcha-modal-refresh').addEventListener('click', fetchCaptcha);
|
|
|
|
|
|
document.addEventListener('click', function(e) {
|
|
var btn = e.target.closest('.math-captcha-trigger');
|
|
if (!btn) return;
|
|
e.preventDefault();
|
|
|
|
var form = btn.closest('form');
|
|
if (!form) return;
|
|
pendingForm = form;
|
|
|
|
|
|
pendingNeedPassword = !!(form.querySelector('#ask_password_input'));
|
|
|
|
|
|
var notifyCb = document.getElementById('notify-checkbox');
|
|
var emailInput = document.getElementById('email-input');
|
|
if (notifyCb && notifyCb.checked && emailInput && emailInput.value.trim() === '') {
|
|
UIkit.modal.alert(CAPTCHA_I18N.needEmail);
|
|
return;
|
|
}
|
|
|
|
fetchCaptcha();
|
|
UIkit.modal('#math-captcha-modal').show();
|
|
});
|
|
})();
|
|
</script>
|
|
|
|
<style>
|
|
|
|
.tb-hero {
|
|
padding: 36px 24px 32px;
|
|
text-align: center;
|
|
background-image: linear-gradient(180deg, var(--tb-primary-weak), rgba(255, 255, 255, 0));
|
|
}
|
|
.tb-hero-title {
|
|
margin: 0;
|
|
font-size: 1.75rem;
|
|
line-height: 1.35;
|
|
font-weight: 600;
|
|
color: var(--tb-text);
|
|
}
|
|
.tb-hero-lead {
|
|
margin: 12px auto 0;
|
|
max-width: 30rem;
|
|
font-size: 0.95rem;
|
|
line-height: 1.8;
|
|
color: var(--tb-text-muted);
|
|
}
|
|
.tb-hero-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
gap: 10px;
|
|
margin-top: 22px;
|
|
}
|
|
.tb-hero-actions .uk-button {
|
|
min-width: 112px;
|
|
}
|
|
.tb-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
|
|
gap: 12px;
|
|
margin-top: 12px;
|
|
}
|
|
.tb-grid .uk-card {
|
|
padding: 18px 18px 20px;
|
|
text-align: left;
|
|
}
|
|
.tb-card-title {
|
|
margin: 0 0 6px;
|
|
font-size: 0.98rem;
|
|
font-weight: 600;
|
|
color: var(--tb-text);
|
|
}
|
|
.tb-card-text {
|
|
margin: 0;
|
|
font-size: 0.86rem;
|
|
line-height: 1.7;
|
|
color: var(--tb-text-muted);
|
|
}
|
|
.tb-card-text + .tb-card-text {
|
|
margin-top: 8px;
|
|
}
|
|
.tb-card-text.tb-lead {
|
|
margin-top: 12px;
|
|
}
|
|
.tb-changelog summary + ul {
|
|
margin-top: 10px;
|
|
}
|
|
.tb-section-title {
|
|
margin: 0 0 10px;
|
|
font-size: 0.95rem;
|
|
font-weight: 600;
|
|
color: var(--tb-text);
|
|
}
|
|
.tb-notice-tag {
|
|
display: inline-block;
|
|
margin: 0 0 8px;
|
|
padding: 2px 8px;
|
|
border-radius: var(--tb-radius-xs);
|
|
background: var(--tb-primary-weak);
|
|
color: var(--tb-primary);
|
|
font-size: 0.75rem;
|
|
}
|
|
.tb-list {
|
|
margin: 0;
|
|
padding-left: 1.15em;
|
|
font-size: 0.9rem;
|
|
line-height: 1.9;
|
|
color: var(--tb-text);
|
|
}
|
|
.tb-changelog summary {
|
|
cursor: pointer;
|
|
font-size: 0.9rem;
|
|
font-weight: 600;
|
|
color: var(--tb-text);
|
|
list-style: none;
|
|
}
|
|
.tb-changelog summary::-webkit-details-marker { display: none; }
|
|
.tb-changelog summary::before {
|
|
content: "▸";
|
|
display: inline-block;
|
|
margin-right: 8px;
|
|
color: var(--tb-text-muted);
|
|
transition: transform 0.2s ease;
|
|
}
|
|
.tb-changelog[open] summary::before { transform: rotate(90deg); }
|
|
.tb-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 8px;
|
|
text-align: center;
|
|
}
|
|
.tb-stat-num {
|
|
display: block;
|
|
font-size: 1.5rem;
|
|
font-weight: 600;
|
|
line-height: 1.3;
|
|
color: var(--tb-text);
|
|
}
|
|
.tb-stat-label {
|
|
display: block;
|
|
margin-top: 2px;
|
|
font-size: 0.78rem;
|
|
color: var(--tb-text-muted);
|
|
}
|
|
.tb-stats-meta {
|
|
margin: 14px 0 0;
|
|
font-size: 0.78rem;
|
|
line-height: 1.8;
|
|
color: var(--tb-text-muted);
|
|
text-align: center;
|
|
}
|
|
@media (max-width: 480px) {
|
|
.tb-hero { padding: 28px 16px 24px; }
|
|
.tb-hero-title { font-size: 1.4rem; }
|
|
.tb-stat-num { font-size: 1.25rem; }
|
|
}
|
|
</style>
|
|
|
|
<div class="uk-card uk-card-default tb-hero">
|
|
<h1 class="tb-hero-title">狼の質問箱 | 匿名質問箱</h1>
|
|
<p class="tb-hero-lead">
|
|
一个无需注册即可提问的匿名提问箱。不用下载 App,不用绑定社交账号,连邮箱都不必是真的。
|
|
</p>
|
|
<div class="tb-hero-actions">
|
|
<a href="/explore" class="uk-button uk-button-primary">探索</a>
|
|
<a href="/rules" class="uk-button uk-button-default">ルール</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="tb-grid">
|
|
<div class="uk-card uk-card-default">
|
|
<p class="tb-card-title">匿名也能问</p>
|
|
<p class="tb-card-text">不需要账号、不需要真实邮箱,打开就能写。想收到回复再留邮箱即可。</p>
|
|
</div>
|
|
<div class="uk-card uk-card-default">
|
|
<p class="tb-card-title">不止一问一答</p>
|
|
<p class="tb-card-text">问题二维码、私聊、投票、追加提问、Markdown 排版,原版没有的这里都有。</p>
|
|
</div>
|
|
<div class="uk-card uk-card-default">
|
|
<p class="tb-card-title">箱子归你</p>
|
|
<p class="tb-card-text">头像、背景、二维码配色都能自己调,还能设置审核严格度和收集时段。</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="uk-card uk-card-default uk-card-body">
|
|
<p class="tb-notice-tag">域名迁移</p>
|
|
<p class="tb-card-text">
|
|
本站已切换到 <a href="https://box.shiroko.one/">box.shiroko.one</a>,原域名将在 2026 年 12 月 24 日到期,
|
|
期间通过 301 转发指向新域名,到期后旧域名将彻底不再使用。
|
|
</p>
|
|
<p class="tb-card-text">
|
|
审核服务已切换到阿里云,审核速度提升且误伤更少;同时允许用户调整审核严格度,在不碰底线的前提下
|
|
可以设置不接受辱骂、广告等信息(即「不听坏话模式」)。
|
|
</p>
|
|
</div>
|
|
|
|
<div class="uk-card uk-card-default uk-card-body">
|
|
<h2 class="tb-section-title">一点提醒</h2>
|
|
<ul class="tb-list">
|
|
<li>本站唯一指定认证站长:<a href="https://box.shiroko.one/_/tamakyi">小狼</a>,注意不要被骗。</li>
|
|
<li>本站提倡友好、友善的发言,请遵守<a href="/rules">社区规则</a>。无论匿名与否,都要为自己的发言负责。</li>
|
|
<li>不允许垃圾信息、广告、辱骂、涉政、暴恐、色情、违禁、无意义、灌水提问,涉政或不良言论将直接删除。</li>
|
|
</ul>
|
|
<p class="tb-card-text tb-lead">
|
|
想先试试功能,可以到站长的提问箱
|
|
<a href="//box.shiroko.one/_/tamakyi">小狼的提问箱</a> 提问或提意见。
|
|
</p>
|
|
</div>
|
|
|
|
<details class="uk-card uk-card-default uk-card-body tb-changelog">
|
|
<summary>近期更新</summary>
|
|
<ul class="tb-list">
|
|
<li><strong>2026.9</strong> 新增审核严格度选项,增加提问、投票、私聊的总开关,可设置定时收集、定量收集或关闭功能,前后端显示也更易用了。</li>
|
|
<li><strong>2026.8</strong> 新增<a href="https://box.shiroko.one/vote/sANyLkiBNUGN">投票功能</a>、追加提问、多语言、<a href="https://box.shiroko.one/_/tamakyi/2894">Markdown 显示</a>、置顶显示等,详情见<a href="https://blog.shiroko.one/record/tamabox_changelog_20260813">这里</a>。</li>
|
|
<li><strong>2026.8</strong> 放弃使用 recaptcha 等对国内用户不友好的验证方式,更新密码加密方式,修复图片上传等一系列问题。</li>
|
|
<li><strong>2026.5</strong> 增加私聊功能,可连续对话,详见<a href="https://blog.shiroko.one/record/tamabox-update-20260513">介绍</a>;另有提问箱卡片分享。</li>
|
|
<li><strong>2026.2</strong> 新增用户展示和标签功能,可给自己贴 5 个标签并选择是否在<a href="https://box.shiroko.one/explore">探索页</a>展示,详情见<a href="https://blog.shiroko.one/record/tamabox-tags">狼的公告板</a>。</li>
|
|
</ul>
|
|
</details>
|
|
|
|
<div class="uk-card uk-card-default uk-card-body">
|
|
<h2 class="tb-section-title">質問箱の統計</h2>
|
|
<div class="tb-stats">
|
|
<div>
|
|
<span class="tb-stat-num tb-num" data-stat="registered_users">28</span>
|
|
<span class="tb-stat-label">注册用户</span>
|
|
</div>
|
|
<div>
|
|
<span class="tb-stat-num tb-num" data-stat="total_questions">94</span>
|
|
<span class="tb-stat-label">累计提问</span>
|
|
</div>
|
|
<div>
|
|
<span class="tb-stat-num tb-num" data-stat="answered_questions">21</span>
|
|
<span class="tb-stat-label">已获回答</span>
|
|
</div>
|
|
</div>
|
|
<p class="tb-stats-meta">
|
|
最后提问:<span data-stat="last_question_at">2026-10-19 00:58:03</span><br>
|
|
最后回答:<span data-stat="last_answer_at">2026-10-19 02:44:47</span><br>
|
|
数据更新于:<span data-stat="updated_at">2026-10-19 12:48:26</span>
|
|
</p>
|
|
</div>
|
|
<script type="text/javascript">
|
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
setInterval(function () {
|
|
fetch("/api/v1/site-stats")
|
|
.then(function (r) { return r.json(); })
|
|
.then(function (resp) {
|
|
var d = resp.data;
|
|
if (!d) return;
|
|
["registered_users", "total_questions", "answered_questions",
|
|
"last_question_at", "last_answer_at", "updated_at"].forEach(function (k) {
|
|
var v = d[k];
|
|
if (v === undefined || v === null || v === "") return;
|
|
var el = document.querySelector('[data-stat="' + k + '"]');
|
|
if (el) el.textContent = v;
|
|
});
|
|
})
|
|
.catch(function () {});
|
|
}, 30 * 60 * 1000);
|
|
});
|
|
</script>
|
|
<div id="waline" data-v-app=""><div data-waline="" avatar="identicon"><div class="wl-reaction"><div class="wl-reaction-title"></div><ul class="wl-reaction-list"><li class="wl-reaction-item"><div class="wl-reaction-img"><img src="https://ali-imgs.acfun.cn/kimg/bs2/zt-image-host/ChYwOGQ3OTRhYzRjMTBkZmZhZDVmZTA1EIjM1y8.gif" alt="哇哦"><div class="wl-reaction-votes">0</div></div><div class="wl-reaction-text">哇哦</div></li><li class="wl-reaction-item"><div class="wl-reaction-img"><img src="https://ali-imgs.acfun.cn/kimg/bs2/zt-image-host/ChQwOGEyOTlhYzRjMTBmOWFkZjAwYRCIzNcv.gif" alt="prpr"><div class="wl-reaction-votes">0</div></div><div class="wl-reaction-text">prpr</div></li><li class="wl-reaction-item"><div class="wl-reaction-img"><img src="https://ali-imgs.acfun.cn/kimg/bs2/zt-image-host/ChYwOGRhOTVhYzRjMTBkNmViYTVlNTA2EIjM1y8.gif" alt="流汗"><div class="wl-reaction-votes">0</div></div><div class="wl-reaction-text">流汗</div></li><li class="wl-reaction-item"><div class="wl-reaction-img"><img src="https://ali-imgs.acfun.cn/kimg/bs2/zt-image-host/ChYwOGU1OTJhYzRjMTBmMzk3ZmVmNTAyEIjM1y8.gif" alt="生气"><div class="wl-reaction-votes">0</div></div><div class="wl-reaction-text">生气</div></li><li class="wl-reaction-item"><div class="wl-reaction-img"><img src="https://ali-imgs.acfun.cn/kimg/bs2/zt-image-host/ChYwOGNkODdhYzRjMTBjYmEwOTFjNjAxEIjM1y8.gif" alt="流鼻血"><div class="wl-reaction-votes">0</div></div><div class="wl-reaction-text">流鼻血</div></li><li class="wl-reaction-item"><div class="wl-reaction-img"><img src="https://ali-imgs.acfun.cn/kimg/bs2/zt-image-host/ChQwODliOGVhYzRjMTBmOGM0ZWY1ZRCIzNcv.gif" alt="あべ"><div class="wl-reaction-votes">0</div></div><div class="wl-reaction-text">あべ</div></li></ul></div><div class="wl-comment"><!--v-if--><div class="wl-panel"><div class="wl-header item2"><div class="wl-header-item"><label for="wl-nick">昵称(可选)</label><input id="wl-nick" class="wl-input wl-nick" name="nick" type="text"></div><div class="wl-header-item"><label for="wl-mail">邮箱</label><input id="wl-mail" class="wl-input wl-mail" name="mail" type="email"></div></div><textarea id="wl-edit" class="wl-editor" placeholder="欢迎评论(可以无需登录,但需要手工审核,不会立即展现)"></textarea><div class="wl-preview" style="display: none;"><hr><h4>预览:</h4><div class="wl-content"></div></div><div class="wl-footer"><div class="wl-actions"><a href="https://guides.github.com/features/mastering-markdown/" title="Markdown Guide" aria-label="Markdown is supported" class="wl-action" target="_blank" rel="noopener noreferrer"><svg width="16" height="16" ariaHidden="true"><path d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z" fill="currentColor"></path></svg></a><button type="button" class="wl-action" title="表情" style=""><svg viewBox="0 0 1024 1024" width="24" height="24"><path d="M563.2 463.3 677 540c1.7 1.2 3.7 1.8 5.8 1.8.7 0 1.4-.1 2-.2 2.7-.5 5.1-2.1 6.6-4.4l25.3-37.8c1.5-2.3 2.1-5.1 1.6-7.8s-2.1-5.1-4.4-6.6l-73.6-49.1 73.6-49.1c2.3-1.5 3.9-3.9 4.4-6.6.5-2.7 0-5.5-1.6-7.8l-25.3-37.8a10.1 10.1 0 0 0-6.6-4.4c-.7-.1-1.3-.2-2-.2-2.1 0-4.1.6-5.8 1.8l-113.8 76.6c-9.2 6.2-14.7 16.4-14.7 27.5.1 11 5.5 21.3 14.7 27.4zM387 348.8h-45.5c-5.7 0-10.4 4.7-10.4 10.4v153.3c0 5.7 4.7 10.4 10.4 10.4H387c5.7 0 10.4-4.7 10.4-10.4V359.2c0-5.7-4.7-10.4-10.4-10.4zm333.8 241.3-41-20a10.3 10.3 0 0 0-8.1-.5c-2.6.9-4.8 2.9-5.9 5.4-30.1 64.9-93.1 109.1-164.4 115.2-5.7.5-9.9 5.5-9.5 11.2l3.9 45.5c.5 5.3 5 9.5 10.3 9.5h.9c94.8-8 178.5-66.5 218.6-152.7 2.4-5 .3-11.2-4.8-13.6zm186-186.1c-11.9-42-30.5-81.4-55.2-117.1-24.1-34.9-53.5-65.6-87.5-91.2-33.9-25.6-71.5-45.5-111.6-59.2-41.2-14-84.1-21.1-127.8-21.1h-1.2c-75.4 0-148.8 21.4-212.5 61.7-63.7 40.3-114.3 97.6-146.5 165.8-32.2 68.1-44.3 143.6-35.1 218.4 9.3 74.8 39.4 145 87.3 203.3.1.2.3.3.4.5l36.2 38.4c1.1 1.2 2.5 2.1 3.9 2.6 73.3 66.7 168.2 103.5 267.5 103.5 73.3 0 145.2-20.3 207.7-58.7 37.3-22.9 70.3-51.5 98.1-85 27.1-32.7 48.7-69.5 64.2-109.1 15.5-39.7 24.4-81.3 26.6-123.8 2.4-43.6-2.5-87-14.5-129zm-60.5 181.1c-8.3 37-22.8 72-43 104-19.7 31.1-44.3 58.6-73.1 81.7-28.8 23.1-61 41-95.7 53.4-35.6 12.7-72.9 19.1-110.9 19.1-82.6 0-161.7-30.6-222.8-86.2l-34.1-35.8c-23.9-29.3-42.4-62.2-55.1-97.7-12.4-34.7-18.8-71-19.2-107.9-.4-36.9 5.4-73.3 17.1-108.2 12-35.8 30-69.2 53.4-99.1 31.7-40.4 71.1-72 117.2-94.1 44.5-21.3 94-32.6 143.4-32.6 49.3 0 97 10.8 141.8 32 34.3 16.3 65.3 38.1 92 64.8 26.1 26 47.5 56 63.6 89.2 16.2 33.2 26.6 68.5 31 105.1 4.6 37.5 2.7 75.3-5.6 112.3z" fill="currentColor"></path></svg></button><!--v-if--><input id="wl-image-upload" class="upload" type="file" accept=".png,.jpg,.jpeg,.webp,.bmp,.gif"><!--v-if--><button type="button" class="wl-action" title="预览"><svg viewBox="0 0 1024 1024" width="24" height="24"><path d="M710.816 654.301c70.323-96.639 61.084-230.578-23.705-314.843-46.098-46.098-107.183-71.109-172.28-71.109-65.008 0-126.092 25.444-172.28 71.109-45.227 46.098-70.756 107.183-70.756 172.106 0 64.923 25.444 126.007 71.194 172.106 46.099 46.098 107.184 71.109 172.28 71.109 51.414 0 100.648-16.212 142.824-47.404l126.53 126.006c7.058 7.06 16.297 10.979 26.406 10.979 10.105 0 19.343-3.919 26.402-10.979 14.467-14.467 14.467-38.172 0-52.723L710.816 654.301zm-315.107-23.265c-65.88-65.88-65.88-172.54 0-238.42 32.069-32.07 74.245-49.149 119.471-49.149 45.227 0 87.407 17.603 119.472 49.149 65.88 65.879 65.88 172.539 0 238.42-63.612 63.178-175.242 63.178-238.943 0zm0 0" fill="currentColor"></path><path d="M703.319 121.603H321.03c-109.8 0-199.469 89.146-199.469 199.38v382.034c0 109.796 89.236 199.38 199.469 199.38h207.397c20.653 0 37.384-16.645 37.384-37.299 0-20.649-16.731-37.296-37.384-37.296H321.03c-68.582 0-124.352-55.77-124.352-124.267V321.421c0-68.496 55.77-124.267 124.352-124.267h382.289c68.582 0 124.352 55.771 124.352 124.267V524.72c0 20.654 16.736 37.299 37.385 37.299 20.654 0 37.384-16.645 37.384-37.299V320.549c-.085-109.8-89.321-198.946-199.121-198.946zm0 0" fill="currentColor"></path></svg></button></div><div class="wl-info"><div class="wl-captcha-container"></div><div class="wl-text-number">0 <span> / <span class="">50</span></span> 字</div><button type="button" class="wl-btn">登录</button><button type="submit" class="primary wl-btn" title="Cmd|Ctrl + Enter">提交</button></div><div class="wl-gif-popup"><input type="text" placeholder="搜索表情包"><!--v-if--><div class="wl-loading"><svg width="30" height="30" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"><circle cx="50" cy="50" fill="none" stroke="currentColor" strokeWidth="4" r="40" stroke-dasharray="85 30"><animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="1s" values="0 50 50;360 50 50" keyTimes="0;1"></animateTransform></circle></svg></div></div><div class="wl-emoji-popup"><div class="wl-tab-wrapper"><button type="button" title="acfun_01"><!--v-if--></button><button type="button" title="acfun_02"><!--v-if--></button><button type="button" title="acfun_03"><!--v-if--></button><button type="button" title="acfun_04"><!--v-if--></button><button type="button" title="acfun_05"><!--v-if--></button><button type="button" title="acfun_06"><!--v-if--></button><button type="button" title="acfun_07"><!--v-if--></button><button type="button" title="acfun_08"><!--v-if--></button><button type="button" title="acfun_09"><!--v-if--></button><button type="button" title="acfun_10"><!--v-if--></button><button type="button" title="acfun_11"><!--v-if--></button><button type="button" title="acfun_12"><!--v-if--></button><button type="button" title="acfun_13"><!--v-if--></button><button type="button" title="acfun_14"><!--v-if--></button><button type="button" title="acfun_15"><!--v-if--></button><button type="button" title="acfun_16"><!--v-if--></button><button type="button" title="acfun_17"><!--v-if--></button><button type="button" title="acfun_18"><!--v-if--></button><button type="button" title="acfun_19"><!--v-if--></button><button type="button" title="acfun_20"><!--v-if--></button><button type="button" title="acfun_21"><!--v-if--></button><button type="button" title="acfun_22"><!--v-if--></button><button type="button" title="acfun_23"><!--v-if--></button><button type="button" title="acfun_24"><!--v-if--></button><button type="button" title="acfun_25"><!--v-if--></button><button type="button" title="acfun_26"><!--v-if--></button><button type="button" title="acfun_27"><!--v-if--></button><button type="button" title="acfun_28"><!--v-if--></button><button type="button" title="acfun_29"><!--v-if--></button><button type="button" title="acfun_30"><!--v-if--></button><button type="button" title="acfun_31"><!--v-if--></button><button type="button" title="acfun_32"><!--v-if--></button><button type="button" title="acfun_33"><!--v-if--></button><button type="button" title="acfun_34"><!--v-if--></button><button type="button" title="acfun_35"><!--v-if--></button><button type="button" title="acfun_36"><!--v-if--></button><button type="button" title="acfun_37"><!--v-if--></button><button type="button" title="acfun_38"><!--v-if--></button><button type="button" title="acfun_39"><!--v-if--></button><button type="button" title="acfun_40"><!--v-if--></button><button type="button" title="acfun_41"><!--v-if--></button><button type="button" title="acfun_42"><!--v-if--></button><button type="button" title="acfun_43"><!--v-if--></button><button type="button" title="acfun_44"><!--v-if--></button><button type="button" title="acfun_45"><!--v-if--></button><button type="button" title="acfun_46"><!--v-if--></button><button type="button" title="acfun_47"><!--v-if--></button><button type="button" title="acfun_48"><!--v-if--></button><button type="button" title="acfun_49"><!--v-if--></button><button type="button" title="acfun_50"><!--v-if--></button></div><!--v-if--></div></div></div><!--v-if--></div><div class="wl-meta-head"><div class="wl-count"><!--v-if--> 评论</div><ul class="wl-sort"><li class="active">按正序</li><li class="">按倒序</li><li class="">按热度</li></ul></div><div class="wl-cards"></div><div class="wl-empty">来发评论吧~</div><!--v-if--></div></div>
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
const waline = Waline.init({
|
|
el: '#waline',
|
|
|
|
serverURL: 'https://waline.337845818.best/',
|
|
path: window.location.href,
|
|
|
|
locale: {
|
|
nick: '昵称',
|
|
nickError: '昵称不能少于3个字符',
|
|
mail: '邮箱',
|
|
mailError: '请填写正确的邮件地址',
|
|
link: '网址',
|
|
optional: '可选',
|
|
placeholder: '欢迎评论(可以无需登录,但需要手工审核,不会立即展现)',
|
|
sofa: '来发评论吧~',
|
|
submit: '提交',
|
|
like: '喜欢',
|
|
cancelLike: '取消喜欢',
|
|
reply: '回复',
|
|
cancelReply: '取消回复',
|
|
comment: '评论',
|
|
refresh: '刷新',
|
|
more: '加载更多...',
|
|
preview: '预览',
|
|
emoji: '表情',
|
|
uploadImage: '上传图片',
|
|
seconds: '秒前',
|
|
minutes: '分钟前',
|
|
hours: '小时前',
|
|
days: '天前',
|
|
now: '刚刚',
|
|
uploading: '正在上传',
|
|
login: '登录',
|
|
logout: '退出',
|
|
admin: '博主',
|
|
sticky: '置顶',
|
|
word: '字',
|
|
wordHint: '评论字数应在 $0 到 $1 字之间!\n当前字数:$2',
|
|
anonymous: '无名小狼',
|
|
level0: '潜水',
|
|
level1: '冒泡',
|
|
level2: '吐槽',
|
|
level3: '活跃',
|
|
level4: '话痨',
|
|
level5: '传说',
|
|
gif: '表情包',
|
|
gifSearchPlaceholder: '搜索表情包',
|
|
profile: '个人资料',
|
|
approved: '通过',
|
|
waiting: '待审核',
|
|
spam: '垃圾',
|
|
unsticky: '取消置顶',
|
|
oldest: '按倒序',
|
|
latest: '按正序',
|
|
hottest: '按热度',
|
|
reactionTitle: '',
|
|
reaction0: '哇哦',
|
|
reaction1: 'prpr',
|
|
reaction2: '流汗',
|
|
reaction3: '生气',
|
|
reaction4: '流鼻血',
|
|
reaction5: 'あべ',
|
|
},
|
|
reaction: [
|
|
'https://ali-imgs.acfun.cn/kimg/bs2/zt-image-host/ChYwOGQ3OTRhYzRjMTBkZmZhZDVmZTA1EIjM1y8.gif',
|
|
'https://ali-imgs.acfun.cn/kimg/bs2/zt-image-host/ChQwOGEyOTlhYzRjMTBmOWFkZjAwYRCIzNcv.gif',
|
|
'https://ali-imgs.acfun.cn/kimg/bs2/zt-image-host/ChYwOGRhOTVhYzRjMTBkNmViYTVlNTA2EIjM1y8.gif',
|
|
'https://ali-imgs.acfun.cn/kimg/bs2/zt-image-host/ChYwOGU1OTJhYzRjMTBmMzk3ZmVmNTAyEIjM1y8.gif',
|
|
'https://ali-imgs.acfun.cn/kimg/bs2/zt-image-host/ChYwOGNkODdhYzRjMTBjYmEwOTFjNjAxEIjM1y8.gif',
|
|
'https://ali-imgs.acfun.cn/kimg/bs2/zt-image-host/ChQwODliOGVhYzRjMTBmOGM0ZWY1ZRCIzNcv.gif',
|
|
],
|
|
meta: ['nick','mail'],
|
|
requiredMeta: ['mail'],
|
|
pageview: true,
|
|
search: false,
|
|
login: 'enable',
|
|
wordLimit: 50,
|
|
pageSize: 5,
|
|
avatar: 'identicon',
|
|
emoji: [
|
|
'https://gcore.jsdelivr.net/gh/tamakyi/emoji-collection@main/acfun-color/60x60',
|
|
],
|
|
|
|
imageUploader: false,
|
|
|
|
copyright: false,
|
|
});
|
|
});
|
|
</script>
|
|
<p class=" uk-text-right uk-text-muted uk-text-small">
|
|
<br>
|
|
<a href="/rules">ルール</a> |
|
|
|
|
<a href="https://box.shiroko.one/_/tamakyi" target="_blank">管理者へ</a>
|
|
<br>
|
|
<a href="https://share.shiroko.one" target="_blank">ドライブ</a>
|
|
| <a href="https://blog.shiroko.one" target="_blank">お知らせ</a>
|
|
| <a href="https://chat.shiroko.one" target="_blank">チャット</a>
|
|
| <a href="https://status.shiroko.one" target="_blank">ステータス</a>
|
|
| <a href="https://shiroko.one" target="_blank">リンク</a>
|
|
<br>Powered by NekoBox | 狼ICP备 20230101
|
|
<br>質問箱は稼働中:<span id="box_runtime">3年 110天 18时 44分 45秒 </span>
|
|
</p>
|
|
|
|
<script>
|
|
|
|
|
|
|
|
|
|
(function () {
|
|
var create = Math.round(Date.UTC(2023, 6, 1, 18, 15, 43) / 1000);
|
|
function tick() {
|
|
var el = document.getElementById("box_runtime");
|
|
if (!el) return;
|
|
var s = Math.round((Date.now() + 8 * 3600 * 1000) / 1000) - create;
|
|
var t = [0, 0, 0, 0, 0];
|
|
if (s >= 31536000) { t[0] = s / 31536000 | 0; s %= 31536000; }
|
|
if (s >= 86400) { t[1] = s / 86400 | 0; s %= 86400; }
|
|
if (s >= 3600) { t[2] = s / 3600 | 0; s %= 3600; }
|
|
if (s >= 60) { t[3] = s / 60 | 0; s %= 60; }
|
|
if (s > 0) { t[4] = s; }
|
|
el.innerHTML = t[0] + '年 ' + t[1] + '天 ' + t[2] + '时 ' + t[3] + '分 ' + t[4] + '秒 ';
|
|
}
|
|
tick();
|
|
setInterval(tick, 1000);
|
|
})();
|
|
</script>
|
|
<br>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
|
|
|
|
|
|
var SUBMIT_I18N = {
|
|
submitting: '送信中...',
|
|
uploading: 'アップロード中...'
|
|
};
|
|
|
|
function tbResetSubmitButtons() {
|
|
document.querySelectorAll('button[data-tb-submitting]').forEach(function(b) {
|
|
b.disabled = false;
|
|
b.removeAttribute('data-tb-submitting');
|
|
var orig = b.getAttribute('data-tb-restore');
|
|
if (orig !== null) {
|
|
b.innerHTML = orig;
|
|
b.removeAttribute('data-tb-restore');
|
|
}
|
|
});
|
|
}
|
|
|
|
document.addEventListener('submit', function(e) {
|
|
var form = e.target;
|
|
if (!form || form.tagName !== 'FORM') return;
|
|
|
|
|
|
|
|
if (e.defaultPrevented || form.getAttribute('data-tb-skip-submit-feedback') === '1') {
|
|
form.removeAttribute('data-tb-skip-submit-feedback');
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
if (form.getAttribute('target') === '_blank') return;
|
|
|
|
|
|
var trigger = e.submitter || form.querySelector('button[type="submit"]');
|
|
|
|
|
|
var hasFile = false;
|
|
form.querySelectorAll('input[type="file"]').forEach(function(f) {
|
|
if (f.files && f.files.length > 0) hasFile = true;
|
|
});
|
|
var label = hasFile ? SUBMIT_I18N.uploading : SUBMIT_I18N.submitting;
|
|
|
|
if (trigger && trigger.tagName === 'BUTTON') {
|
|
trigger.setAttribute('data-tb-restore', trigger.innerHTML);
|
|
trigger.innerHTML = '<span uk-spinner="ratio: 0.6"></span> ' + label;
|
|
}
|
|
|
|
|
|
form.querySelectorAll('button').forEach(function(b) {
|
|
b.disabled = true;
|
|
b.setAttribute('data-tb-submitting', '1');
|
|
});
|
|
});
|
|
|
|
|
|
window.addEventListener('pageshow', tbResetSubmitButtons);
|
|
</script>
|
|
|
|
|
|
<script src="https://mami.shiroko.one/tamami.js" data-website-id="c42ebe8b-9281-4da0-83a4-8f18b3e710fe"></script></body></html>
|