Seorang ibu dan anak lelaki yang sangat menawan dan cantik bersendirian di sebuah kolam air panas campuran... Mereka berdua bersendirian di sebuah kolam air panas campuran, dan melihat tubuh bogel ibu itu benar-benar GIGOLO (ジゴロ)","lastmod":"2026-07-11","duration":"04:01:33","url":"/play/19163815.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjNmYTZjOGQ2NTk5ZDFlOThjZGVkYWM5ODQyMjVhOTkuanBn.cache","vod_id":18939082,"title":"XXX-AV 24061 Lakonan Krim Pai Seks, Gadis Comel di Sekolah Pakaian Renang dan Seluar Tanglung! Jilid 1","lastmod":"2025-12-14","duration":"00:19:37","url":"/play/18939082.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjIzNTJhYjAxNWZlNDQyYzliNzQwNmUyNzBjMDVhYTEuanBn.cache","vod_id":19010679,"title":"Cosplay loli yang comel dengan punggung yang lincah menunggu anda untuk dimasukkan.","lastmod":"2025-03-24","duration":"22:55","url":"/play/19010679.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmFiYTUzYzMzM2NhYTM0MThkNjQ2MTg3OTNhMmRkNmEuanBn.cache","vod_id":18946257,"title":"Seorang gadis yang sangat comel berpakaian seperti pembantu rumah seksi, menunjukkan wajahnya, memakai stoking hitam, menggunakan timun sebagai alat bantu, melancap dan mengerang, menggosoknya pada alat penggetar, dan terpancut keluar hanya kerana mendengar erangannya. (Sekuel 3 jam)","lastmod":"2025-12-14","duration":"03:22:59","url":"/play/18946257.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGY2ZmYxNDZlMGNlMDIxYjUxOGY5NGU0ZjNmZGVkY2EuanBn.cache","vod_id":18965326,"title":"Seorang gadis montel dan comel dengan kulit cerah dan payudara yang cantik, seorang gadis manis melancap secara menggoda, mengangkat pakaiannya untuk mendedahkan payudaranya dan membuka kakinya secara dekat.","lastmod":"2025-03-22","duration":"01:45:03","url":"/play/18965326.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTY0MDExZTQ0YzhlZDc1M2YyZmY2NjdlMmZiZTMwOGEuanBn.cache","vod_id":18968029,"title":"OKS-145 Lulu-chan. Basah, berkilauan, ketat, baju renang sekolah yang suci. Nikmati baju renang sekolah gadis comel itu! Bermula dengan merakam secara rahsia perubahan bentuk badannya, payudara kecilnya...","lastmod":"2025-12-14","duration":"01:33:00","url":"/play/18968029.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDBmZGI2YWQ5YWJmNTZkMGMyNzFmMWNmN2NjZGIwYmQuanBn.cache","vod_id":18927736,"title":"AP-736_B Saya menjual adik perempuan saya yang comel. Dia adik perempuan saya yang patuh sejak dia kecil. Jilid 5","lastmod":"2025-12-14","duration":"00:19:59","url":"/play/18927736.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTUvYjJmYTQ0ZTI2NGJiZWUxOThjZDJkNGZkODczYWNkYTMuanBn.cache","vod_id":19057978,"title":"[Bahasa Cina] VENX302 Ibu isteri saya baru-baru ini mula risau tentang tubuhnya yang montok dan matang, dan melihatnya malu membuatkan saya tegang.","lastmod":"2025-10-14","duration":"01:39:46","url":"/play/19057978.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTRhMmIxZDY5N2MzYzA2NDkzN2IxODQ5ZDkyZGI4NGIuanBn.cache","vod_id":18968773,"title":"FC2PPV 3246349 [Wajah Terbongkar] Reaksi gadis yang sangat muda dan jelita ini sungguh menakjubkan, jadi saya ingin berjumpa dengannya lagi dan menghubunginya.","lastmod":"2025-12-14","duration":"00:51:49","url":"/play/18968773.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTMzZDZkZDJlNGU0ZTBhYjVjYzdhYjBmMmExZjIwYzIuanBn.cache","vod_id":18984603,"title":"STARS-860 Selepas mandi di rumah saudara mara, melihat keadaan sepupunya yang tidak dijaga, dia tidak dapat menahan diri dan menyerangnya beberapa kali. (Seratus Bunga)","lastmod":"2025-03-23","duration":"02:09:22","url":"/play/18984603.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGUwZGZmMGNkYjIxMzZlODg0MTJiYjlhZTYyZGNhODUuanBn.cache","vod_id":18937769,"title":"MIAA-041 Wilayah Mutlak, Seragam Comel Atas Lutut, Wanita Cantik, Eimi Fukada","lastmod":"2025-12-14","duration":"02:00:08","url":"/play/18937769.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDMzNjZhYjYxYTA0OGY2MWI3MDdjMjc0ZTkxNjljN2UuanBn.cache","vod_id":18927067,"title":"Kelab MILF 7697 Sanada Yukari Video Tanpa Penapisan \"Neraka Isteri Saya Melihat Hari Itu\" Episod 4 - Lesbian Ekstrem","lastmod":"2025-12-14","duration":"00:26:50","url":"/play/18927067.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGNlNDc3OWQwNzExZjBjNDBjZGUwMDcyYzJmNjI1ZmEuanBn.cache","vod_id":18978411,"title":"Seorang gadis kecil yang comel dan polos, seorang pendatang baru yang tidak tahu apa-apa, ditunjukkan wajahnya sepanjang pertemuan itu sambil \"dilatih\" oleh peminat lelakinya. Interaksi itu melibatkan godaan, rabaan payudara, dan gambar jarak dekat farajnya yang ketat dan lembut, mewujudkan pengalaman yang mengujakan dan mengujakan.","lastmod":"2025-12-14","duration":"00:35:09","url":"/play/18978411.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWJhYzI2MGYyN2YyYzc5ZDVjN2FhYmVlZTgwM2YyZDQuanBn.cache","vod_id":18941389,"title":"1pon013020_967 Sangat mengujakan~ Sangat comel! Teman wanita Berbahaya Saya (Aoki Mi)","lastmod":"2025-03-22","duration":"00:58:41","url":"/play/18941389.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTc3NGQ1YWNmZTJmZDkyMGJiZTYxYzBhZGJhZWM0NzMuanBn.cache","vod_id":18969375,"title":"[Sarikata Bahasa Cina] HUNTB-501 \"Nak saya tunjukkan awak? Ta-da! Sayang sekali! Saya tak boleh bagi awak nampak puting saya!\" Payudara samar-samar kelihatan di dalam tab mandi buih!","lastmod":"2025-12-14","duration":"02:24:32","url":"/play/18969375.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDYvODlkNWRiMzNhYzViNjU2YWU1NjA4YWFhODdmMzQ1ZDYuanBn.cache","vod_id":19167152,"title":"Profil Media Sosial 001 Susuk Tubuh Badan Cemerlang! Penari yang comel, berkulit cerah dan langsing, pelajar sekolah swasta yang berprestij, ahli kumpulan tarian terkenal, penari kawaii","lastmod":"2026-07-11","duration":"02:31:32","url":"/play/19167152.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTM2MzFjZjIzZTc2YWY4ZDdjZjIzNzlkMjI1NWZmZjkuanBn.cache","vod_id":19139803,"title":"\"Awak teruja nak tengok punggung saya ke?\" Jangan malukan seorang wanita! Jangan terlepas kunjungan daripada Shinmura Akira, Hibiki Tsukasa, dan Natsu Nishida 104DANDYA-014","lastmod":"2026-01-23","duration":"03:10:42","url":"/play/19139803.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTAxNGY5ZTQ3MjFiOWYzNzU1MDYzNjc0ZTUyOWU1YTUuanBn.cache","vod_id":18936133,"title":"MIFD-080 Setiap darjah mempunyai seorang gadis yang pendiam tetapi cantik. Seorang gadis berusia 19 tahun yang mencurigakan menanggalkan cermin matanya.","lastmod":"2025-03-22","duration":"02:33:30","url":"/play/18936133.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvY2YxZThhNDU4ZTUzMTAzMDdmMDMwNDFmYWExNGJlOWQuanBn.cache","vod_id":19136698,"title":"Pendatang baru, Yasaka Nagi yang comel membuat debut AVnya. Yasaka Nagi MIDA-251","lastmod":"2026-01-04","duration":"02:47:53","url":"/play/19136698.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGEwNTBlODIyZTcwMzAxMGExYmY0NDYyZDdlOWVhOGYuanBn.cache","vod_id":18984824,"title":"GIGL-724 Saya dan ibu saya yang cantik dan seksi bersendirian di dalam bilik mandi campuran jantina... Ia adalah kali pertama dalam masa yang lama saya melihat tubuh bogel ibu saya yang cantik, dan saya tidak dapat menahan diri daripada mengalami ereksi.","lastmod":"2025-12-14","duration":"04:01:07","url":"/play/18984824.html"}]},
videoTitle: 'IPX-331 TINDAKAN PERTAMA 134 Chihaya Rin ~Seorang kakak perempuan yang comel yang pasti akan membuat anda jatuh cinta jika melihatnya di jalanan~',
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=/`;
}
};
}