Isteri Abang yang Cantik Saya menemui rahsia adik ipar saya yang cantik dan sangat kecewa, dia sedang mencari aplikasi mencari jodoh. Hamasaki Mao, Page Jane","lastmod":"2026-07-11","duration":"02:07:13","url":"/play/19162697.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjQ2OGI4MDE1ODZlNDIwN2MxMzlmODIwOTVkYjliMzcuanBn.cache","vod_id":18992416,"title":"DDHZ-005 Isteriku tersayang… Aku rasa teruja melihat dia dipeluk oleh seorang pemuda dan menggeliat dalam klimaks betul-betul di hadapanku. Asuka Rin 1","lastmod":"2025-03-23","duration":"01:46:04","url":"/play/18992416.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTIyOGJkODQzNzEwMzYxYjAxNmZjNDkzZWZiZTk4YjMuanBn.cache","vod_id":18928492,"title":"APNS-163 Peguam Kecantikan yang Jatuh: \"Saya telah dirogol beramai-ramai dan dihamilkan oleh lelaki-lelaki lucah ini di hadapan tunang saya. Jilid 5\"","lastmod":"2025-12-14","duration":"00:19:55","url":"/play/18928492.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGUyYjQwODZhOTQ0ZmFjOGU3MDk3MTNhNGFmZTQ0OTguanBn.cache","vod_id":19015417,"title":"JUFE071 Seorang perempuan jalang yang benar-benar menggoda menggunakan percakapan lucah untuk mengawal ejakulasi anda, ini adalah JOI subjektif muktamad Eimi Fukada.","lastmod":"2025-03-24","duration":"02:33:28","url":"/play/19015417.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDk3MzA4MDcxMjBkMDY4OWM2YTRmNmI4MmJkZDJjZGEuanBn.cache","vod_id":19141832,"title":"\"Fuck Your Stepmother\" oleh Rimori - Seorang gadis montok, berbadan tegap, diselamatkan oleh seorang ibu tiri yang menggiurkan yang menerima segala-galanya dan membuatkan anda orgasme. MIDA-441","lastmod":"2026-02-06","duration":"02:26:08","url":"/play/19141832.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjEvZDUzODY2Mjk1Y2JhMmVmNmM0NzRmYTFmMmNkNmFiYWMuanBn.cache","vod_id":19058962,"title":"Isteri amatur yang jelas wanita matang POV Bahagian 4 Kebocoran sebenar peribadi Pak Cik Sukehei Pelakon tidak diketahui SJHD004 bocor","lastmod":"2025-10-20","duration":"04:13:32","url":"/play/19058962.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWJhZjdlYTA1ODJmN2NmMDQ1ZTcwZjBmY2JmODg5MzguanBn.cache","vod_id":18987256,"title":"[Sarikata Bahasa Cina] HMN-469 Pembantu Rumah Hukuman Pai Krim Pengganti: Untuk melindungi bapanya, seorang gadis cantik berpakaian seragam menawarkan alat sulitnya kepada lelaki tua lucah yang dibencinya, Tojo Natsumi.","lastmod":"2025-12-14","duration":"01:58:27","url":"/play/18987256.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODk2MGNjZjUzMDg4NDVjMDNhODBmN2NmNDBlN2IxYTQuanBn.cache","vod_id":18938401,"title":"[Sarikata Bahasa Cina] NASH-139 Seorang jurujual insurans hayat wanita yang sudah berkahwin dalam lingkungan usia lima puluhan atau empat puluhan melawat seorang pelanggan untuk mencari seorang dara.","lastmod":"2025-03-22","duration":"02:19:29","url":"/play/18938401.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWU3NDBkMTFhMjlhNmUyYTM1MzUxZTY3ZmQ0YjdmN2QuanBn.cache","vod_id":18950150,"title":"[Sarikata Cina] XRW-744 Pelacur berpayudara besar menghisap apabila suaminya tiada","lastmod":"2025-03-22","duration":"02:44:17","url":"/play/18950150.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTY2MTJhOGQ4NmYxNzAzNzBjODllMTI3ZDkwYjhmNjkuanBn.cache","vod_id":18952315,"title":"[Sarikata Cina] WANZ-329 bekerja sambilan untuk ditiduri. (Ray)","lastmod":"2025-12-14","duration":"01:55:12","url":"/play/18952315.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDIyNDg5MzVkNzJjZmU4MjczOTAyNWMyZTliNzkzMTAuanBn.cache","vod_id":19003072,"title":"[Sarikata Cina HD] [Rent-a-Maid] Tanya sahaja dia dan awak boleh melakukan hubungan seks dengannya secara rahsia 28","lastmod":"2025-03-23","duration":"02:10:02","url":"/play/19003072.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGE1OGM3NjdlOGI0ZjlhMjIwNGFiMzY0Y2U4MjgyOGIuanBn.cache","vod_id":18971061,"title":"[Versi Tanpa Potongan] MEYD-768 Hari ini saya akan pancut dalam badan awak sehingga awak hamil... Yamaguchi Juri","lastmod":"2025-12-14","duration":"01:56:38","url":"/play/18971061.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjEvMWU1NGUwN2QxZDcwMGUxZjI0Y2EyYjUzMGI2MzdmNTkuanBn.cache","vod_id":19048256,"title":"Pertemuan Lucah 3D Genshin Impact AYS di Bilik Persendirian: Versi Penuh Sari Kata Asal","lastmod":"2025-08-20","duration":"17:14","url":"/play/19048256.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWMyNWVkZDk4MWQzODZhY2E3NDk1NGJlNWE5M2E3M2MuanBn.cache","vod_id":18942027,"title":"Seorang gadis yang menggoda dengan punggung besar dan berkaca mata melakukan pertunjukan melancap menggunakan telur yang bergetar, dildo, menggosok zakarnya pada stoking terbuka di kelangkang, dan menggoyangkan punggungnya—sangat menggoda. Jangan ketinggalan jika anda menyukainya!","lastmod":"2025-03-22","duration":"00:21:46","url":"/play/18942027.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjUxNjA0YWY4ZTEyMTA5ZGJlYjY5NDY1MDM0OTc3M2IuanBn.cache","vod_id":18970832,"title":"[Sarikata Cina] IENF-258 Kana Yura: Seks Pancutan Mani Pagi dan Malam - 50 Gadis Loli Berusia 18 Tahun Kecil Setinggi 143cm Sertai Pagi dan Malam!","lastmod":"2025-03-23","duration":"02:27:52","url":"/play/18970832.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmNhMDkzNjk0YWEwY2M2ZmU3N2I3ZWU2NTY3NzQ5MjQuanBn.cache","vod_id":18981084,"title":"[Sarikata Cina] MIMK-123 Akaun Rahsia yang Meriah: Latihan Penghantaran Wanita Pejabat yang Masokis - Karya Agung Aksi Langsung yang Akan Membangkitkan Moral Anda! Yuria Yoshine","lastmod":"2025-12-14","duration":"02:00:24","url":"/play/18981084.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGFlZGY5NDhhMTZjM2RkZTNmODBjMGQxNzdkMWZhNzUuanBn.cache","vod_id":18961196,"title":"[Sarikata Cina] MIAA-748 Perkembangan Dubur Kesat Bos Wanita Cantik: Suit Latihan Lelaki Masokis - Sumire Kurokawa","lastmod":"2025-12-14","duration":"02:31:29","url":"/play/18961196.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTVhMmFiMmJkNjcyNjNmODU0Njg1YzEwNDc3NjRjZDYuanBn.cache","vod_id":18943697,"title":"[Sarikata Bahasa Cina] MDTM-551: Kisah Seorang Gadis Sensitif dengan Ejakulasi Pramatang dan Melahirkan Bayi pada Hari Ovulasi (Misaka)","lastmod":"2025-12-14","duration":"01:59:13","url":"/play/18943697.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjhhYzZhMGFhNzU1ZTljNzYzZDI2YTdhNWIwMjdmYjkuanBn.cache","vod_id":18981838,"title":"FC2PPV 3662771 [Versi Utama Ibu Kedai Snek Berdada Besar Montok] [dengan Bonus 4K] *Had Kuantiti 1500pt [Kisah Pelik/Seks Berkumpulan] Wanita Cantik Berkahwin dan Berdada Besar","lastmod":"2025-03-23","duration":"00:52:15","url":"/play/18981838.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzI4ZTcyMTQ4YjFiM2IyOWNmMjFjZDM2YzJmYjBjMzYuanBn.cache","vod_id":18950252,"title":"[Sarikata Bahasa Cina] XRW-826 Selepas bertengkar dengan teman lelakinya, dia membincangkannya dengan jirannya.","lastmod":"2025-03-22","duration":"02:09:14","url":"/play/18950252.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTc1ZmYxNGQ5M2I3NzJjMWJjNWIxODExNDgwZjcyOWQuanBn.cache","vod_id":18973254,"title":"[Tanpa Tapisan] 348NTR-049 Seorang isteri G-cup yang sangat nakal yang tidak pernah dapat menghilangkan tabiat curangnya. Kami menemui pasangan berhampiran Kuil Senso-ji... atau begitulah sangkaan kami, tetapi mereka sebenarnya pasangan suami isteri!","lastmod":"2025-03-23","duration":"01:22:17","url":"/play/18973254.html"}]},
videoTitle: '[Sarikata Bahasa Cina] DASD-578 Isteri saya yang menggiurkan sedang cuba hamil, tetapi ayah saya curang dan menghamilkannya.',
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=/`;
}
};
}