[Pertukaran Muka] Lee Chaeryeong, Superwoman Terpancut Pada....","lastmod":"2026-07-11","duration":"27:29","url":"/play/19165008.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDMvNmUxNjM1ZGNlYjNhNzViMjE1N2MwODIxMDdjNDBmZTQuanBn.cache","vod_id":19041247,"title":"Lin Yuxi, seorang pelakon yang tulen dan polos dari Madou Media, telah mencipta satu-satunya karya, \"Brother and Sister Banana Talk,\" yang berbaloi untuk dikumpulkan.","lastmod":"2025-07-02","duration":"08:23","url":"/play/19041247.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTMvODI4NGI1MzgzMmM2NDE5NWU4ZTM4Y2Y5N2U2ZjkyMjEuanBn.cache","vod_id":19062413,"title":"Menghantar pelakon wanita seksi ke pesta lucah untuk hubungan satu malam: Matsumoto Ichika, Misono Kazuka, Kuramoto Sumire MIH_010","lastmod":"2025-12-13","duration":"01:58:02","url":"/play/19062413.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjNiMjUyMTVlNjU3YWFjZDQ3MTExMjc1MThlNjY4OTMuanBn.cache","vod_id":19014863,"title":"DTT030: Janji temu pancutan air mani terbaik dengan wanita terbaik yang sudah berkahwin. Seorang 3P yang diculik dengan isteri berdada besar, dan pancutan air mani dengan Ichinose Sumire.","lastmod":"2025-03-24","duration":"02:12:49","url":"/play/19014863.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjQvN2RmZTAyM2Y0ZGQ4ZTY2YjI3NDcxNWIzYzM1ZWRiY2UuanBn.cache","vod_id":19030580,"title":"Pelakon AV legenda Keiri Akari, dengan susuk tubuhnya yang sempurna, bersendirian berhadapan dengan ramai pelakon lelaki, yang memuncak dengan 12 pancutan air mani berturut-turut di dalam dirinya. (Arai Airi EBOD-712-C)","lastmod":"2025-04-24","duration":"01:55:17","url":"/play/19030580.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTlhNjQwM2FjNWVkOWIzMGFjMDIxZjAwMzljMGIyMWIuanBn.cache","vod_id":19018213,"title":"[Ulasan AV] Sauh wanita popular Xiaotaozi yang telah dicuci otak","lastmod":"2025-03-24","duration":"12:02","url":"/play/19018213.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTcvMWNjNjAzNzViOTgyNmE2ZTY3YTdiZTFjMzk4YTAyOGIuanBn.cache","vod_id":19047419,"title":"[Eksklusif Selebriti Internet] Dewi Selebriti Internet Nuan'er dengan 380,000 pengikut [Musim 3] - Kandungan Berskala Besar","lastmod":"2025-08-16","duration":"01:52:53","url":"/play/19047419.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjUwOThkYjJlODdmMDhmODZmZDlmNjEzYWVjMDExNzcuanBn.cache","vod_id":18991561,"title":"300MAAN-423 Seorang jelita tahap JD yang sangat seksi dan sukar dicapai, juga seorang gadis gelanggang seni mempertahankan diri, telah ditiduri secara kejam! Dia memiliki badan seksi dan kaki cantik yang diidamkan oleh semua orang! Nikmati gegaran punggungnya yang melantun ketika omboh berkelajuan tinggi menekannya! Tubuhnya yang cantik dibalut ketat dengan pakaian seksi, dan keduanya terlibat dalam adegan seks yang ghairah, meneroka badan masing-masing! 1","lastmod":"2025-12-14","duration":"01:14:24","url":"/play/18991561.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjgvMmI4MGIxMmRlNTYwMDNmZWJhMWI3Yzg0MDY3MDZkYzQuanBn.cache","vod_id":19054810,"title":"[Kebocoran Terbaru] Awek Weibo, dewi melengkung oliveemmm","lastmod":"2025-09-27","duration":"32:59","url":"/play/19054810.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWJlYmYyMjZkNzkxOTVhNzc3NjM4OWRmYjNiZjM2NGIuanBn.cache","vod_id":18957367,"title":"Perspektif seorang dewi yang disunting secara profesional dan jarang distrim secara langsung, menunjukkan dia melakukan seks oral dengan penuh semangat sambil berbaring di sofa dan melakukan hubungan seks; vulvanya yang tebal telah pun rosak teruk dan menjadi hitam.","lastmod":"2025-12-14","duration":"00:30:26","url":"/play/18957367.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvN2Q3ZjNlMDAyMmVmY2IyYjgzOGNmOTY3MmQ4YTM2OTYuanBn.cache","vod_id":19149294,"title":"Dewi Kampus Belia 1","lastmod":"2026-03-20","duration":"29:37","url":"/play/19149294.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTUvNjlmOGFhMDlhMTcwZGIyY2JlMmU0NjNhNDY4MDM5MDkuanBn.cache","vod_id":19134152,"title":"Peningkatan kualiti imej AI Ultra-HD adegan lucah yang kejam 3000 dewi tulen temu janji dalam talian.","lastmod":"2025-12-18","duration":"01:16:32","url":"/play/19134152.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvMGY4NmY2MTI2MzQ2NzViMzA1Mzc3YTQ4N2IwMWIzNGEuanBn.cache","vod_id":19064348,"title":"Kecantikan ilahi dewi itu membuatkan zakarku membengkak ke puncak dan menembusi kelangkangku hanya dengan sekali pandang.","lastmod":"2025-12-14","duration":"02:00:29","url":"/play/19064348.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYWM2ZDlmZjg5ZjI1MWQ1NmRlODQ2M2JmOTBkNjExMDYuanBn.cache","vod_id":19147695,"title":"Dewi Beradik-beradik, Arnab Kebal, Dua Gadis Bersama e502b5","lastmod":"2026-03-11","duration":"01:02:01","url":"/play/19147695.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvM2I4ZjRhMWM2Yzg1NGU1Yjg3Nzk2OGIwODg5ZjY1OGUuanBn.cache","vod_id":19147936,"title":"Dewi itu telah tiba, teratai putih suci, susuk tubuh yang sempurna, payudara besar seputih salji.","lastmod":"2026-03-12","duration":"47:14","url":"/play/19147936.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2M5ODQ2YTdlN2VhMzhlYzk4OGQxZjBmM2YwMDRkNzUuanBn.cache","vod_id":18984398,"title":"326SCP-026 [Tembakan Persendirian × Pecutan Coser] Seorang cosplayer yang sangat popular dengan payudara F-cup yang mengagumkan membuat penampilan sulungnya! Faraj sensitif gadis tsundere yang seksi ini.","lastmod":"2025-12-14","duration":"00:59:06","url":"/play/18984398.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjIvYzQxNDdlNmI0YTRjMjRjYTA2ZGZjODQ4YTQzYTQwYzEuanBn.cache","vod_id":19048370,"title":"Cadangan teratas: pencipta kandungan yang paling cantik dan berhati manis, dewi terunggul.","lastmod":"2025-08-21","duration":"24:21","url":"/play/19048370.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDE2ZDJlMzAyZTBhYzY1NTJhMmNkZWVmN2NiYzQ5MzcuanBn.cache","vod_id":19155583,"title":"Dewi pengiring yang kejam, manis, dan cantik","lastmod":"2026-04-28","duration":"55:33","url":"/play/19155583.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDI5NzE4ZjY5NzczNDY2MmI5ZWUyOWE4ZDRhMDgyMjEuanBn.cache","vod_id":18979535,"title":"PPPD-735 Asami-chan (alias), 18 tahun, ialah seorang jurujual yang sangat comel dengan payudara besar yang tersembunyi. Dia bekerja di sebuah kedai kasut popular di Yoshisho. ● Apabila dia membongkok, payudaranya yang sebesar cawan H akan terserlah sepenuhnya, dan dia memberikan layanan yang sangat baik!","lastmod":"2025-12-14","duration":"01:58:38","url":"/play/18979535.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MDkvZmQwOTQ5MTA3YWU5ZDY5NjVhYmQ2ZDEyMGFjMDM1MjMuanBn.cache","vod_id":19037282,"title":"Dewi itu, yang bosan di tempat duduk belakangnya, bermain dengan farajnya, menyebabkannya terpancut dengan cecair bernafsu yang tersembur ke merata tempat.","lastmod":"2025-06-09","duration":"16:03","url":"/play/19037282.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmNjMzI5YTA1YmE3NmM1MzdhNjI2OGZhMjlhOWI2ZGMuanBn.cache","vod_id":18976549,"title":"CESD-432 AV Pelakon Dilarang 2: Yui Hatano","lastmod":"2025-12-14","duration":"03:20:45","url":"/play/18976549.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWFjMjg5MGMxY2NlY2VkZTdhZDdjYTRkZDE2MjkwZjUuanBn.cache","vod_id":18953257,"title":"Kompilasi Khas Ulang Tahun Pertama MILK-036 MILK: 10 Pelakon Wanita AV Terkenal, 13 Pancutan Mani Berturut-turut, 300 Minit","lastmod":"2025-03-22","duration":"02:38:31","url":"/play/18953257.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzhkOTkzZGQ1Mzk5YzJhZjdhOTlmOWU1YzNkZGUyNTUuanBn.cache","vod_id":19156906,"title":"Dewi Pemburuan Harta Karun Lan Xiangting EP1 Episod Program: Pengambilan Hebat Tiket Kereta Api yang Terpaksa Pulang ke Rumah","lastmod":"2026-05-06","duration":"23:13","url":"/play/19156906.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZDFhMjc3NjAxZTk4ZDg0MjBkY2M4N2MwYTliMDhmNGQuanBn.cache","vod_id":19157168,"title":"Xiao Bao mencari dewi pengiring peringkat atasan dengan potongan rambut seperti Nezha.","lastmod":"2026-05-08","duration":"35:12","url":"/play/19157168.html"}]},
videoTitle: 'MKMP-226 Pilihan pelakon wanita paling popular yang dipilih khas!! 7 dewi terkemuka yang mencetuskan sensasi dalam industri AV.',
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=/`;
}
};
}