Keinginan Guru Kesihatan Hibiki untuk Hubungan Seksual Lelaki yang Tiada Tandingan Ōtsuki Hibiki Massulum - Puak Khayalan","lastmod":"2026-07-11","duration":"","url":"/play/19206918.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjEvNGM5NmU5MzJmODkzOTg4YzEwOTcyYmUyMDM3MWY0MTkuanBn.cache","vod_id":19155540,"title":"Xiao Ma mencari kerja sambilan dengan seorang gadis kolej berusia 20 tahun yang mengalami pelbagai orgasme semasa melancap.","lastmod":"2025-09-20","duration":"0:28:58","url":"/play/19155540.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDQyNTg2Y2YzM2VkYmUwOGMzMmU2ODk4N2QyN2Y5YzIuanBn.cache","vod_id":19119274,"title":"POST473: Saya menyalahgunakan kedudukan saya sebagai presiden kelab untuk melakukan hubungan seks dengan ahli wanita. Ini sangat keji! Ahli wanita adalah hamba seks! Saya mula melatih mereka sejak dari usia dara! Saya memaksa mereka mengambil pil perancang keluarga dan pancutan air mani di dalam mereka!","lastmod":"2025-03-26","duration":"3:16:07","url":"/play/19119274.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYmY1YWMyMzA1ZGVlZjRhNGE1MjNiZWU3N2Y1Yjg2NWMuanBn.cache","vod_id":19173657,"title":"Kebocoran KTV: Adegan seks tandas KTV - gadis memberi teman lelaki seks oral dan kemudian penembusan.","lastmod":"2026-01-13","duration":"0:04:13","url":"/play/19173657.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGQxYzZiM2Q4YWIwNmM1NjIwOGU5NGVhMmQ5ZmI0YWUuanBn.cache","vod_id":19117585,"title":"LUXU1125 TV Mewah 1124 Wanita cantik itu muncul semula. Tubuhnya lebih sensitif akibat minyak, payudaranya bergetar, dan dia berulang kali bercinta untuk mendapatkan lebih banyak keseronokan apabila zakar yang besar menyodok ke dalam rahimnya. Anda mesti menonton!","lastmod":"2025-03-26","duration":"1:08:13","url":"/play/19117585.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjZhMDE4NTI5NWY0YmY1NTg4YTA2ZGViYWZmNWUyOTEuanBn.cache","vod_id":19108504,"title":"Oleh kerana saya sangat menikmati ereksi, saya ingin mencari pekerjaan yang membolehkan saya mengalami ereksi.","lastmod":"2025-03-26","duration":"2:00:22","url":"/play/19108504.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDRmMmFjMjMyNGM3NGFjZTRkNzRlMDNhMGZiOTEyNTkuanBn.cache","vod_id":19175259,"title":"Seorang gadis yang kelihatan tidak bersalah dengan personaliti yang berbeza bersembang video dengan rakan-rakannya semasa melakukan hubungan seks, membiarkan mereka mengagumi sisi lucahnya – ini menjadikannya lebih provokatif dan seksi dalam PUBG.","lastmod":"2026-01-20","duration":"0:01:50","url":"/play/19175259.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDg5MDRlZjY3ODllNWUyYTNhM2RiYWZlYTg5MzE5MjQuanBn.cache","vod_id":19110358,"title":"Big Bear Brother mengenakan bayaran sebanyak 3000 yuan untuk berhubung dengan seorang remaja berusia 17 tahun yang memberontak dan berhenti sekolah menengah yang dipenuhi tatu kartun yang bekerja sebagai pengiring. Dia berketinggian 172cm dengan kaki yang panjang.","lastmod":"2025-03-26","duration":"0:29:37","url":"/play/19110358.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZmM5MjU4NWFkMTNhODdmMjE1ZTU4MWYwYmMxZTYxZjEuanBn.cache","vod_id":19127095,"title":"Satu temu janji di mana fantasi seorang dara masokis untuk dicabul oleh pelakon AV kegemarannya menjadi kenyataan.","lastmod":"2025-03-26","duration":"1:35:32","url":"/play/19127095.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjE2ZWExYTIwMjVmOWY4ZTI1YzdlYjdjMWFlYTY5MGQuanBn.cache","vod_id":19120450,"title":"DOCP048 pada asalnya bekerja sebagai model lakaran berpakaian, tetapi selepas minum afrodisiak dan diintip, dia menjadi terangsang dan farajnya terus mengeluarkan pelincir.","lastmod":"2025-03-26","duration":"3:55:01","url":"/play/19120450.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDdlN2VmZmNjOGJmNzdkMTNlNDg4ZTRmMTQxMTk1Y2IuanBn.cache","vod_id":19115024,"title":"Si cantik sekolah yang nakal itu menggoda seniornya untuk melakukan hubungan seks.","lastmod":"2025-03-26","duration":"0:11:38","url":"/play/19115024.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTAvZDg5MzIwNDRmOWQxY2VmMjgyNzNhNDllZGU1NDVhY2IuanBn.cache","vod_id":19153784,"title":"Seorang pelakon lakon peranan yang dara sebenar membuat penampilan sulung dalam AV; keinginan seorang gadis yang berkhayal untuk kehilangan keperawanannya; Suzuka Nishiki; MUKC086","lastmod":"2025-09-09","duration":"2:52:25","url":"/play/19153784.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjIvMDc3MThmYjkxYzlkMDQ3M2M5Y2Q3YTA5MWJjZDVjOTQuanBn.cache","vod_id":19140227,"title":"KTRA718 telah melakukan hubungan seks dengan wanita montok yang menyukai payudara besar selama 24 jam berturut-turut.","lastmod":"2025-06-22","duration":"4:05:07","url":"/play/19140227.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTllOWE0NWU0ZGJlZGFiMmRmZjdkYzc0YzgyNzFkNTUuanBn.cache","vod_id":19194065,"title":"Seorang perempuan jalang berkimono memancut dan melancap, melakukan seks oral, pelbagai posisi, memancut.","lastmod":"2026-04-20","duration":"0:58:44","url":"/play/19194065.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNTdhNDZhNDAxMmZlZTEwMmI1ZjQwNTM1M2FiMTE3YmEuanBn.cache","vod_id":19179038,"title":"Lesbian Transgender - Saya Menemui Pekerjaan di Kilang Seluar Dalam dan Menjadi Meja Pemasangan Bos Wanita - Tsukino Kuroi # Tsujii Honoka NVH-066","lastmod":"2026-02-07","duration":"2:43:02","url":"/play/19179038.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTYzMGFhMGZlMjBhNjlkMzAyMDI5NzIwNDhmN2VjMTMuanBn.cache","vod_id":19083778,"title":"[Wanita Matang yang Menggoda] Seorang wanita matang berambut panjang dengan getaran seksi, melakukan hubungan seks dengan penuh ghairah dengan teman lelakinya yang lebih muda.","lastmod":"2025-03-26","duration":"1:19:47","url":"/play/19083778.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTU2ZTI4MzYwOTI5NjllNTZmMTk4MmMwMGQyM2NiYzQuanBn.cache","vod_id":19067906,"title":"Gambar swafoto bercinta ghairah model dewi Si'er yang liar dan tidak terkawal bersama teman lelakinya yang bertatu bocor dalam talian. Memakai stoking hitam, dia mengambil inisiatif untuk menunggang di atasnya, dengan dialog yang berani dan merangsang.","lastmod":"2025-03-26","duration":"0:13:10","url":"/play/19067906.html"}]},
videoTitle: '[Merekrut untuk kerja seks sambilan] 祈山愛 こぐま-妄想族',
language: 'ms',
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('Pautan disalin!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Pautan disalin!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Pautan 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=/`;
}
};
}