【Pengawasan dan Kamera Tersembunyi】6 Wanita Berdada Besar Dirogol! Idola Bawah Tanah H-Cup × Guru Taska Berkahwin Mengalami Inseminasi Berulang","lastmod":"2026-07-11","duration":"","url":"/play/19245915.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzFhZTdmOWZjYjc3NzIxOTE0MzMwYjBjYmM0YjRlNWEuanBn.cache","vod_id":19148337,"title":"CAWD-397 Saya, seorang guru, telah ditangkap secara rahsia merakam seluar dalam saya dan dibawa pergi… Saya dimarahi oleh pelajar beruniform sambil diejek dan dilepaskan semua nafsu lucah saya. Bahagian yang paling mengujakan ialah rehat hotel selama 2 jam. Shiro Momoka, Yokomiya Nanami","lastmod":"2025-03-29","duration":"01:58:24","url":"/play/19148337.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNTBlNTQxYzEzNGY3N2U5ZDk3NjFhNGFmOGQwNjNhMTMuanBn.cache","vod_id":19238312,"title":"Mao Hamasaki telah digunakan sebagai mesin pengekstrak air mani oleh seorang wanita cabul di pejabat dan telah disetubuhi sehingga kering.","lastmod":"2026-05-31","duration":"2:01:27","url":"/play/19238312.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODliNDdhOWZjYTA5MGZiYTA4MjNjZDVjYTRkNDMzZTAuanBn.cache","vod_id":19029602,"title":"GDHH-030 Legenda urban sebenar H! Pejabat kosong semasa kerja lebih masa...","lastmod":"2025-03-28","duration":"03:39:08","url":"/play/19029602.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvN2IxNDE5NzQzYTU2MTMxNWIwN2IyYjRkMTJiYTJhNTIuanBn.cache","vod_id":19231832,"title":"Si cantik SOD, Honda Sora, membuka bokongnya luas-luas dan menidurinya dengan liar, memancutkan air mani di dalamnya. Dia mengalami inkontinens kencing dan orgasme lucah di pejabat.","lastmod":"2026-05-01","duration":"2:29:40","url":"/play/19231832.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODQ0NTIzMTVhNTVmYTM3ZWY4ZjY4OTdhNTg4MjI0NTcuanBn.cache","vod_id":19076308,"title":"SNIS-438 Badan Basah ~Masalah Wanita Pejabat Berpeluh~ Rio Ogawa","lastmod":"2025-03-29","duration":"02:04:05","url":"/play/19076308.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGM1OTdkMjRjNjdiYWRjZTYwMjQ4NTZmZjhiMWRiMTMuanBn.cache","vod_id":19034794,"title":"[Sarikata Cina] JUL-026 Setiausaha Berkahwin Berpeluh dan Berciuman di Pejabat CEO, Melakukan Seks (Eksklusif)","lastmod":"2025-03-28","duration":"01:59:26","url":"/play/19034794.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvOWNhYzNlZDI0ZmQ2MjhjNjYxNzczMmNiMWZmMTExYTIuanBn.cache","vod_id":19207406,"title":"AI Yang Mi: Godaan Cabul Pejabat terhadap Rakan Sekerja Wanita OL dalam Stoking Hitam","lastmod":"2025-12-13","duration":"0:24:17","url":"/play/19207406.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTRlZGY5MmU1NTk5OGZhYWJiMWIwOTNhN2EzNDRkYWMuanBn.cache","vod_id":19109898,"title":"- Seorang wanita pejabat yang dahulunya serius kini berpakaian lucah dan berasa sangat teruja - Washio Mei","lastmod":"2025-03-29","duration":"","url":"/play/19109898.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNjFiNTE1ZDNiNzU3ZmI3ZTAyYzYyMzc0ZmE2MzkwNjAuanBn.cache","vod_id":19223680,"title":"Seorang wanita yang sudah berkahwin dan anggun telah disetubuhi secara kejam oleh seorang lelaki muda sehingga dia mencapai klimaks dan mengerang. Air maninya terpercik ke mana-mana apabila lelaki itu menerkamnya di dalam kereta.","lastmod":"2026-03-24","duration":"0:20:03","url":"/play/19223680.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmE2YWM0YzY3Yzc3YjlkYjczZTMwOWUxYWVjNzc4ZmIuanBn.cache","vod_id":19043399,"title":"Seorang wanita yang menggoda, \"Asuka Miku,\" menggoda seorang penghantar ubat yang datang untuk menghantar topeng. Dia secara rahsia menyapu \"minyak ajaib\" pada zakarnya, mengakibatkan dia tidak dapat mengalami ereksi. Haha, dasar perempuan jalang!","lastmod":"2025-03-28","duration":"00:46:02","url":"/play/19043399.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvN2UxZWNkM2YyODc0NzIwYzNjMGZhZTA3ZGQ2OWQxMGUuanBn.cache","vod_id":19219579,"title":"SPZ-1166 Seorang wanita matang yang cantik memukau ditiduri secara kejam! Seorang pekerja kilang wanita beruniform dirakam dan dirakam secara rahsia sedang mengerang di pejabat; dia ditiduri tanpa henti sehingga dia mencapai klimaks.","lastmod":"2026-02-28","duration":"2:01:26","url":"/play/19219579.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTgwNGFjYTMwYWM1ZTJlOWM2YTFmMmIzNzU2ODdkOTUuanBn.cache","vod_id":19074960,"title":"Pemula! Pelajar G-cup kena kacau~ [Mari kita kekal bersama] ✨✨✨--Perasaan cinta pertama yang tulen dan membebankan, kena kacau, ia menyayat hati-181","lastmod":"2025-03-28","duration":"00:55:43","url":"/play/19074960.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvY2UyOGEzYWVhZjZhNmM5M2ZmMjQ2M2VkZTI5ODZjZTcuanBn.cache","vod_id":19237123,"title":"Cantik sungguh! Farajnya menyembur jus, dia dibawa ke puncak syahwat dan merayu belas kasihan.","lastmod":"2026-05-24","duration":"2:05:26","url":"/play/19237123.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDAyNWQwMDc4ZGQ1ZWNhNzVlNWRiNzczMDFiNTRhNGEuanBn.cache","vod_id":19222572,"title":"FSDSS-351 Dewi pai buah yang keren, dengan stoking hitam dan kakinya yang cantik, terpikat! Dia tanpa henti meniduri rakan sekerja lelaki yang sudah berkahwin di pejabat, farajnya dipenuhi dengan jus.","lastmod":"2026-03-18","duration":"0:14:51","url":"/play/19222572.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMTY5NzEwN2I1NGNhZjE2MGM1MzJlMzU2MWM3MjE4ZWEuanBn.cache","vod_id":19111275,"title":"- Pantyhose Basah untuk Wanita Pejabat - Rumi Orikasa","lastmod":"2025-03-29","duration":"","url":"/play/19111275.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTQ5NWYwNTA2YjE3YmQ3ZTAyNTE3NWUwNDZmMmMzYTcuanBn.cache","vod_id":19156659,"title":"WMOG-013 Hadiah Krismas rosak: Si cantik berpayu dara besar ditiduri sehingga seluruh badannya mengejang semasa cuti.","lastmod":"2025-03-29","duration":"30:00","url":"/play/19156659.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDIvN2EwMTcxYWY2MGZlZjM1YzVkNzM4N2RhMmM3YmQyOGQuanBn.cache","vod_id":19183418,"title":"WAAA490 Isteri tidak puas hati dalam perkahwinan tanpa seks, bekerja sambil berselingkuh, ejakulasi dalaman yang melampau, rahim dan zakar berjalin rapat sehingga saat-saat akhir rehat!","lastmod":"2025-07-01","duration":"01:54:32","url":"/play/19183418.html"}]},
videoTitle: 'HandsOnHardcore Aaliyah Love telah dirogol di bilik rehat pejabat.',
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=/`;
}
};
}