Isteri muda berdiri di jalan di kawasan apartmen! Mengambil 1.5? Melakukan hubungan seks di rumah secara percuma! Berunding dan kemudian pancut di dalam tanpa kondom OK! Seorang lelaki muda yang berhenti melakukan hubungan seks untuk membunuh masa Hunter","lastmod":"2026-07-11","duration":"04:00:31","url":"/play/19163820.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjdjYTgwZTAwZGE4MjYwZGIyMGRkYjc3MGQ3OTYxZmIuanBn.cache","vod_id":19008365,"title":"Semasa lawatan syarikat dua hari satu malam saya (MIDE563), saya mematuhi semua arahan sepenuhnya! —Bos wanita saya, Akiyama Shoko.","lastmod":"2025-03-24","duration":"01:59:32","url":"/play/19008365.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjNkNjE0NzAxYzcxYzFkOWQ0NmMyNTVmZjYwMTcyMjEuanBn.cache","vod_id":18924557,"title":"1pon 111419_928 Emiri Miura - Teman wanita saya mahu zakar/batang","lastmod":"2025-12-14","duration":"00:55:43","url":"/play/18924557.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjk4M2Y2YzMxNTY1MmQyYzk5YjYzMTk5OTg1Y2IyNmQuanBn.cache","vod_id":18982064,"title":"MIAE-106 Adik perempuan tsundere saya, Mari Rika, sukakan ereksi pagi saya dan membelainya seperti haiwan peliharaan, tetapi dia tidak berminat dengan saya.","lastmod":"2025-03-23","duration":"01:58:35","url":"/play/18982064.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMTcyNDc3NDk1M2VmMmFkYTdiNTk5M2NiZGIyMjc3MTIuanBn.cache","vod_id":19156300,"title":"Ulang Tahun Pertama VV! Berpantang Sebulan Berakhir! Pelepasan Keinginan Seksual yang Besar daripada Daya Tahan Tanpa Had!! Aku Mahu Makan Dagingmu - Honoka Saito SOD","lastmod":"2026-05-03","duration":"02:20:59","url":"/play/19156300.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODdmODM5ODY4NTZkZDAzMjk4YTU5ZjgzMzUwNDUzODEuanBn.cache","vod_id":18957800,"title":"LZDM-050 [Perspektif Subjektif Lesbian ASMR] Pada hari itu, saya tewas kepada godaan lesbian pelajar-pelajar saya dan memberikan tubuh saya kepada mereka sekali. Sejak itu, saya telah melakukannya berulang kali setiap kali saya bertemu mereka.","lastmod":"2025-12-14","duration":"02:55:50","url":"/play/18957800.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDlhZDJkMzlkZTcxYmFjNGNmYjAwNzdiMGEyMzQwMzMuanBn.cache","vod_id":19156969,"title":"Pada suatu hari yang terik dan panas apabila penghawa dingin rosak, seorang isteri muda yang kecewa secara seksual dari luar bandar, setelah melihat zakar yang tegang selain daripada zakar suaminya, melakukan hubungan seks yang penuh ghairah dan berpeluh. (DASS-581-C)","lastmod":"2026-05-07","duration":"01:56:51","url":"/play/19156969.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTQvMTMzM2FmNmE0OGMzMTA3Y2VmNDZmMzMxNDA1OTIwMjcuanBn.cache","vod_id":19052617,"title":"Pekerja pejabat yang serius tiba-tiba berubah!! Saya sangat teruja dengan perbezaan yang membuatkan saya pancut dengan ganas!! Wanita pejabat lucah × Cl Pelakon wanita tidak dikenali SUPA643","lastmod":"2025-09-13","duration":"04:01:52","url":"/play/19052617.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODA4YTkxNGUxNzkyMDJkZTA1NmZiZjE4ZTA3MTY2ZjUuanBn.cache","vod_id":18956366,"title":"\"Berita Terkini⭐Pendedahan Privasi\" Dendam Scumbag selepas putus cinta dengan seorang gadis membocorkan swafoto tidak sihat seorang pelajar perempuan berkaca mata tulen~ Bermain seruling, melakukan hubungan seks, melancap, dan mempunyai bunyi erangan yang sangat tersendiri. Beginilah cara seorang jalang perempuan jalang dihasilkan (3)","lastmod":"2025-12-14","duration":"00:03:26","url":"/play/18956366.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvOTZhMWZkMzA5YzgzMTU4NzhhNDA5NzM3NDIzYTUxM2UuanBn.cache","vod_id":19065752,"title":"Saya betul-betul obses dengan cikgu kecil bertemakan lemon yang sangat comel ini yang memakai uniform sekolah atau baju renang.","lastmod":"2025-12-14","duration":"43:30","url":"/play/19065752.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvM2I4MjU1YjEzNTM2ZmYyMTgxZmMwZjMwZjJmMTIxM2QuanBn.cache","vod_id":19050403,"title":"EYS110 secara rahsia merakam adegan seks berpeluh! Tabiat seks memalukan seorang wanita sensitif: puting dan kelentit tegang akibat losyen licin.","lastmod":"2025-09-04","duration":"02:58:57","url":"/play/19050403.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmNjNTA0NTJkYjAwOWM1ZDFiYjgyOWNiOGFjNDAyYWUuanBn.cache","vod_id":19025884,"title":"1Pondo 010124_001 Pertemuan semula dengan rakan sekelas yang berubah menjadi wanita glamor berkimono dalam harem 3P terbalik","lastmod":"2025-03-24","duration":"01:01:29","url":"/play/19025884.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTIzZjc4ZWU0NDAwMGIwNzU0NzI4NDBjMGM3MTM3MGMuanBn.cache","vod_id":18937042,"title":"Pangsapuri peribadi bos itu digunakan untuk berhubung dengan pengiring pelajar kolej dengan payudara besar, kaki cantik, dan pakaian renang belahan seksi. Dia menidurinya di sofa dan di atas meja, mengerang dan mengatakan betapa bagusnya itu. Dialognya jelas dan dalam rakaman asal 1080P dengan kamera dwi.","lastmod":"2025-12-14","duration":"00:20:51","url":"/play/18937042.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDlhMTgzNDk4ODZhYzJiN2UxNTA5NmJhNWQxNjQxM2QuanBn.cache","vod_id":18930332,"title":"ATID-241 Era Romantik Kejam Episod 2: Anak Patung Kemuncak Kesedihan oleh Erina Fujisaki, Jilid 6","lastmod":"2025-03-22","duration":"00:20:00","url":"/play/18930332.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjgvNDQ2MmEzMDI4OWIxOWFhNTJlMDRlNTc5OTQ4OTQ5MTEuanBn.cache","vod_id":19031154,"title":"Walaupun tahu ia sama sekali salah, saya menjadi perempuan simpanan utama bos saya. (Minazuki DLDSS-173-C)","lastmod":"2025-04-28","duration":"02:04:34","url":"/play/19031154.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvNDM3ZTA5MzY4NGYwOWE2NDk0M2I2MWZhMjZlNjJkZTQuanBn.cache","vod_id":19067262,"title":"Saya dan ibu saya telah melakukan hubungan seks semasa kehamilan saya—mengetahui bahawa kami tidak mempunyai pertalian darah, kami melakukan perbuatan pembiakan—Tada Yuka ROE_262","lastmod":"2025-12-14","duration":"02:25:24","url":"/play/19067262.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWZlNjIwZjk2M2IzZjgzMWEyZTU1ZjgyMTUxMTk5YjEuanBn.cache","vod_id":19010158,"title":"Lelaki botak dengan zakar besar menghisap zakar pelajar antarabangsa yang kurus","lastmod":"2025-03-24","duration":"10:41","url":"/play/19010158.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmExNWI0ZDM3NzliMjE4NGNjNzFmYTg4OWE0NzUxNTMuanBn.cache","vod_id":18975585,"title":"SDMU-657 Pemantauan Apa yang Berlaku Semasa Seks Tanpa Perlindungan: Tugasan Pilihan untuk Pelajar Kolej yang Menghadiri Kuliah Maklumat Keselamatan Seks","lastmod":"2025-12-14","duration":"04:03:29","url":"/play/18975585.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNzQ1YzdiYTJhMDQwZDczMjI0ZWUyZDdlNmU4NmQxMDQuanBn.cache","vod_id":19158299,"title":"Seorang isteri amatur mendapatkan kondom di rumah seorang pelajar kolej biasa dan bermalam di sana, tetapi tidak berpuas hati dengan hanya satu kejadian seks getah. (Cosmos Echoes)","lastmod":"2026-05-15","duration":"02:22:45","url":"/play/19158299.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvNTU1YmM1ZGY0MGU3MWYxYzE1ZGZiNzljMDg3MzE2YjIuanBn.cache","vod_id":19066430,"title":"Gadis kolej yang berkulit gelap dan dibius dengan rambut ekor kuda berkembar itu telah dirogol secara beramai-ramai dan menjerit kesakitan. Jeritannya menyayat hati.","lastmod":"2025-12-14","duration":"34:46","url":"/play/19066430.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWU1YmY2YzVkYWZjMmIyNjEwY2RhNDNiNGQ0ODJhMmUuanBn.cache","vod_id":19004523,"title":"ZEX-317 Soft G-cup pussy licin: Temu bual AV dengan seorang pelajar kolej - Miho Moriya","lastmod":"2025-03-23","duration":"01:59:17","url":"/play/19004523.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjEvMDE3OTY0NzRiZTE4MTRmYzA4Nzg0YmY0Mjc5NDM0NTAuanBn.cache","vod_id":19058863,"title":"Pelajar kolej wanita cantik yang aktif menyertai aktiviti sukarelawan! \"Bolehkah anda membantu saya memperbaiki ejakulasi pramatang?\" 2 Peserta Pelakon tidak dikenali SKMJ565","lastmod":"2025-10-20","duration":"04:31:39","url":"/play/19058863.html"}]},
videoTitle: 'RDT-212 Wanita muda yang saya kagumi semasa zaman pelajar saya kini telah menjadi pelacur. Dia malu dan berkata, "Rakan sekelas saya..."',
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=/`;
}
};
}