Pertemuan Berzina Lelaki Diselingkuhi dengan Isterinya di Hutan Liar; Lelaki Diselingkuhi Membawa Isterinya untuk Menggoda Seorang Nelayan di Hutan Liar","lastmod":"2026-07-11","duration":"21:37","url":"/play/19167541.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmUwZjljMGE5ODZhMDI0MjQzMjA3OWE0YTBjNTYxMmIuanBn.cache","vod_id":18951015,"title":"HUNTA-150_A Dikelilingi oleh pekerja wanita kanan, saya satu-satunya lelaki di pejabat yang bekerja lebih masa.","lastmod":"2025-12-14","duration":"03:31:40","url":"/play/18951015.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjk3OTgwNjEyZDM4ZmZhNzNjN2QxY2MxYTNmN2Q4MTIuanBn.cache","vod_id":18953924,"title":"OYC-095 Sudah tentu, ia dirakam sebagai AV! Kawan kacak saya membawa seorang gadis mabuk ke bilik saya.","lastmod":"2025-12-14","duration":"02:08:02","url":"/play/18953924.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMzAvOTFhNjIwZTRhNjBhODU2Njg4MmI0MDcwYWU2ODE5MWYuanBn.cache","vod_id":19060232,"title":"Di dalam panggung wayang yang sesak itu, seorang jelita yang langsing menyelinap ke arah saya, membisikkan benda-benda manis dan bermain dengan zakar saya semasa tayangan filem itu untuk mengelakkan saya daripada mengetahuinya.","lastmod":"2025-10-29","duration":"40:56","url":"/play/19060232.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjllZWJjMWM0MDE5YzI5MmE1YTc3ZDk4MjMyZGM5MTIuanBn.cache","vod_id":19137309,"title":"Penyalahgunaan Kuasa: Isteri Saya Digoda oleh Bos Saya yang Pembenci. Dibintangi oleh Ayano Kato, Kaori Iiyama, dan Hijiri Maihara, NSFS-418","lastmod":"2026-01-08","duration":"04:45:14","url":"/play/19137309.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWYzNmMyN2NkNzMyNmI5ZDVmZjk2YWM2YzM0MWM5M2UuanBn.cache","vod_id":18980383,"title":"PPPE-108 Selepas ibu bapa saya berkahwin semula, saya berkongsi bilik dengan dua kakak saya! Terperangkap di antara dua adik-beradik perempuan yang lucah, saya berulang kali disakiti dan dipenuhi dengan air mani mereka setiap hari… Arai Rima, Yokomiya Nanami","lastmod":"2025-12-14","duration":"00:28:17","url":"/play/18980383.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTAvNGViN2UxOTg2YWI5MGMxZGVkN2FmZmZmYjU0MzhiNTguanBn.cache","vod_id":19037815,"title":"Seorang gadis nakal yang montok dan berperut buncit menjadi mainan korban di sekolah—pesta pora liar berkulit gelap dan daging bejat yang diserang oleh cecair putih—anime.","lastmod":"2025-06-10","duration":"27:01","url":"/play/19037815.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTQ1MjY0NmNhMGZkOGEwOWIwYjVmMDg4OTdjY2JlNWYuanBn.cache","vod_id":18978459,"title":"BBAN-411 Seorang graduan baru yang tidak tahu malu dan saya terlepas kereta api terakhir, dan akhirnya berkongsi bilik dengan seorang lesbian. (Penulis: Dinasti Qing Yamei; Air dan Kayu Semula Jadi)","lastmod":"2025-03-23","duration":"02:30:11","url":"/play/18978459.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNjYzZjE0MmViOWYwOWIxZTY2NmQ0YTdmM2Y0OWJjZjguanBn.cache","vod_id":19162089,"title":"Eh, awak bohong ke…? Cuma seorang wanita biasa… satu perubahan yang tiba-tiba! Satu perubahan yang besar! Satu perkembangan yang luar biasa!! Awak tak percaya mata awak, MBM","lastmod":"2026-07-11","duration":"04:00:19","url":"/play/19162089.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZGQ5YjE2MWVhNGZmNzhlZDE0OTc3YzM0YTFmYWY0ODYuanBn.cache","vod_id":19152111,"title":"Insiden NTR sepenuhnya: isteri saya yang memakai I-cup tercinta dimanjakan oleh keinginan seorang lelaki pertengahan umur. Adegan yang mengejutkan: isteri saya di kawasan kejiranan JUR-580","lastmod":"2026-04-07","duration":"02:04:17","url":"/play/19152111.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzAzNTA5MmE3YTcwODJiMDFhMmFkZjZlOTBkZTM4NWYuanBn.cache","vod_id":19012351,"title":"200GANA2246 Seksi dan lembut, penggambaran pertama kali. 1462 Seorang pembantu pergigian dengan fetish otot! Hari ini saya bukan membantu doktor, saya membantu zakar! Saya akan menggunakan payudara besar saya untuk membersihkan zakar saya.","lastmod":"2025-03-24","duration":"01:04:18","url":"/play/19012351.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDhmOGU1OWJiODdlNWM3ZGJhZTkwZTdlMzM2Nzg2YjYuanBn.cache","vod_id":18979097,"title":"[Sarikata Bahasa Cina] HODV-21776 Pertemuan Semula Secara Tidak Sengaja dan NTR Saya telah cuba untuk hamil selama sebulan, dan saya tidak dapat menahan posisi menunggang bekas teman wanita saya. Dia membuatkan saya tidak bergerak dan mencengkam saya jauh di dalam farajnya.","lastmod":"2025-12-14","duration":"02:20:35","url":"/play/18979097.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMDgvMzBlMDFkYTIxOGQ3MzRjZjdiMjJmMzllZTE1NzE0MWUuanBn.cache","vod_id":19056731,"title":"GAYA asli sepenuhnya @Shiori Seorang penyambut tetamu di sebuah syarikat terkenal ialah seorang jalang nakal, sedang makan kelabnya Minami Shiori KNAM060","lastmod":"2025-10-07","duration":"02:18:53","url":"/play/19056731.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MDMvMGFiZTBhYTExYWYxMGFiMjk3Y2RmZDlmNjk1MzQ0Y2UuanBn.cache","vod_id":19027653,"title":"Malam sebelum perkahwinan anaknya, seorang ibu sebagai seorang wanita... Natsuko Kayama ROE-090-C.","lastmod":"2025-04-03","duration":"02:30:38","url":"/play/19027653.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjQvYjhkZWMzYTk2NWVjZTUwMWE4OTdjMWViOGRkY2NhMjMuanBn.cache","vod_id":19064286,"title":"KU Empat Orang Cedera Bahagian 2: Dua Lelaki dan Dua Wanita Bersemangat Melakukan Seks Oral dengan Zakar Besar, dan Zakar Besar Lelaki Itu Ditusuk Tanpa Kondom, Menembak Terus ke Faraj Perempuan Jalang Itu untuk Dilihat oleh Orang Mesum Itu. Mereka Malah Menggunakan Alat Permainan untuk Menusuk. 2.","lastmod":"2025-12-14","duration":"34:34","url":"/play/19064286.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzMzNWUxNTdlNjU4NmIxODY3ODJhMzk1ZmRhZjljYjcuanBn.cache","vod_id":18975813,"title":"Kehidupan 3P seorang wanita matang: melayan dua lelaki seksi di atas katil, melakukan seks oral pada zakar besar mereka dengan ekspresi lucah, menikmati pelbagai posisi sambil mereka menidurinya dengan kuat dan menolak ke dalam dirinya.","lastmod":"2025-12-14","duration":"00:59:01","url":"/play/18975813.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvYmQ2NWJhYWViNzgwYTQ1ODYzMzIwM2RiYmQyZDU3ZDUuanBn.cache","vod_id":19167739,"title":"Erangan setiausaha, stoking hitam, dan kekurangan seluar dalam menggoda bos.","lastmod":"2026-07-11","duration":"35:49","url":"/play/19167739.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGUyN2Y1YmMyOTIwZmZiNGM4NDU1OWE5MTU2ZDgxZjYuanBn.cache","vod_id":18968474,"title":"[Sarikata Bahasa Cina] STARS-773 Jika seorang lelaki seusia anda yang mempunyai sedikit pengalaman temu janji mengajak anda keluar dalam permainan dalam talian, apa yang akan anda lakukan? — Yui Mahiro","lastmod":"2025-03-23","duration":"02:34:36","url":"/play/18968474.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTEvNTkzMDY1MTE2YTYzYzdlNTZhNGVmNTE3NTUyZGYzMTAuanBn.cache","vod_id":19037885,"title":"MIAB173 Di sebuah parti koktel, saya satu-satunya yang tidak boleh melakukan hubungan seks. Pertemuan semula bertahun-tahun kemudian. Seorang lelaki dan seorang wanita bercinta sepanjang malam, membuatkan saya keletihan.","lastmod":"2025-06-11","duration":"02:02:39","url":"/play/19037885.html"}]},
videoTitle: 'Brazzers - Scarlett Jones menggoda Danny D, yang memberikannya seks keras dengan zakarnya yang besar. [Brazzers]',
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=/`;
}
};
}