"Gadis kebajikan" WeChat (istilah yang merujuk kepada wanita yang terlalu menarik dan mempunyai payudara besar), menampilkan pemandangan bilik mandi yang penuh ghairah dengan susuk tubuh yang sempurna, payudara yang polos namun besar, dan wajah yang terdedah dengan sempurna. 40 foto peribadi definisi tinggi, versi asal 1080P untuk koleksi.
Pelajar baru Southwest University, Huang Ziyi, memilih untuk menceburi industri hiburan dewasa bagi mencari rezeki. Gambar peribadinya yang berskala besar telah bocor. Dia sangat cantik dan meminta bantuan sugar daddy.","lastmod":"2026-07-11","duration":"","url":"/play/19267210.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNGIyZmFkNGRjMDJiNDQwYTc5NzYzMTlhYjFlOTNjYWEuanBn.cache","vod_id":19100777,"title":"Guru Bahasa Inggeris terkemuka di Shanghai","lastmod":"2025-03-29","duration":"0:08:45","url":"/play/19100777.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYWIzOTQxNDIyYmMzOWIwZjEzOGEyNDgwY2FiNmZlNmUuanBn.cache","vod_id":19250080,"title":"Payudara K-cup, dibius dan diseksa sehingga orgasme; seorang perisik rahsia yang dipenjarakan di kilang farmaseutikal haram, pakej lengkap keseronokan dan disiplin untuk perisik berdada gergasi. PPPE-372","lastmod":"2026-03-20","duration":"2:00:02","url":"/play/19250080.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDYwMTM4Y2E4ZjMzZTg4ODYwMzIxMzY2NTU3NWM2MjYuanBn.cache","vod_id":19105744,"title":"Video produksi AV, payudara besar, dicukur 2","lastmod":"2025-03-29","duration":"0:04:57","url":"/play/19105744.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzYwMDk1NmRmMjY0MjA1Y2JkZDk0N2FmYmJkYzU5OGEuanBn.cache","vod_id":19104402,"title":"Gadis berbakat dan cantik! Susuk tubuh yang sempurna! Pinggang ramping, payudara yang cantik, vulva yang sangat menawan, merah jambu super, lembut dan berair, penggetar dan dildo bergilir-gilir.","lastmod":"2025-03-29","duration":"0:09:52","url":"/play/19104402.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGNhMjA0NzMwNTVkNTcwNDRlOTBjMmZjM2VlOWM1MGEuanBn.cache","vod_id":19142005,"title":"\"Apa salahnya menjadi licik?\" Alami pengembaraan seperti harem di sebuah hotel bersama seorang wanita muda yang cantik, menikmati sentuhan rapat dan orgasme yang meletup dengan payudaranya yang besar, sehingga subuh!","lastmod":"2025-03-29","duration":"2:15:12","url":"/play/19142005.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MTIvMzVhMTZiYTQ1ZWI5ODY3MWFhMjU3ZDNkMDAyNmQwN2IuanBn.cache","vod_id":19263289,"title":"Cermin Ajaib - Terhad kepada Pelajar Kolej Wanita! Kenali Zakar Teman Lelaki Anda!! Dalam Cermin Ajaib: Temujanji Festival Musim Panas dengan Kecantikan Berpakaian Yukata SP SOD","lastmod":"2026-06-11","duration":"3:38:54","url":"/play/19263289.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzEyMzA2ZWE5NDI2MWI0YmY2MTY4Yjg0MTUxNTUxYjAuanBn.cache","vod_id":19172311,"title":"SDAB315 \"Adakah ejakulasi faraj terasa menyenangkan?\" Sesi latihan pertama seorang pelajar kebajikan dan seks tanpa perlindungan pertama.","lastmod":"2025-03-30","duration":"2:00:42","url":"/play/19172311.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTgwMWRhZDBmNzU4MzNhZjVjODZkNTY1YTNmNjUyNWIuanBn.cache","vod_id":19184218,"title":"MIFD068 Berbadan super kurus berusia 18 tahun, seorang anak ajaib dalam posisi cowgirl!! Penampilan sulung AV, Kagami Mari.","lastmod":"2025-03-30","duration":"2:41:31","url":"/play/19184218.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvNGFmY2FhYTYzMjFmMWQ5ZDBmN2I5ODQ4NjBmYTE3YjAuanBn.cache","vod_id":19233047,"title":"Punggung yang sempurna dan menawan. Saya lumpuh sepenuhnya! Sudah tentu! Jus kucing yang berair menitis ke bawah! Punggung terikat dengan keanjalan tinggi yang mempamerkan seks yang ketat. Matsumoto Ichika. Matsumoto Ichika DASS_459","lastmod":"2025-12-13","duration":"1:58:25","url":"/play/19233047.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MzEvZjViMWE3MTU1OTExNWNhOTBkMzI0YTlkOGMxZTBmNTYuanBn.cache","vod_id":19216035,"title":"MMUS096 Syaitan Kecil Mengusik Gadis Cantik","lastmod":"2025-07-30","duration":"2:05:51","url":"/play/19216035.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMzU4MDM3NWRiMWEyMDFkNjVhNDQwODFhZTAwODBhNDQuanBn.cache","vod_id":19148845,"title":"2021_12_14, [Kuasa Penari Bogel Yang Tiada Tandingan], Rakaman Kamera Tersembunyi Sebenar dari Spa Kesihatan, Gadis Cantik Berkulit Putih dan Sangat Elastik, Bingkai Pertama Sudah Cukup untuk Membuat Anda Keras Tanpa Rasa Malu, Satu dalam Seratus Kaki Berkualiti Tinggi, Putih dan Langsing serta Punggung Berombak 1","lastmod":"2025-03-30","duration":"0:16:22","url":"/play/19148845.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MDUvMjVlNTkzNGZjYjFhMjZjNjkyYTllMjQzMTVhZWY1NTIuanBn.cache","vod_id":19261978,"title":"Perbezaan yang ketara terbongkar: Pramugari Hainan Airlines, He Tingwen, seorang jelita yang memukau, didakwa dijaga oleh seorang sugar daddy dan dijadikan mangsa seks tanpa perlindungan serta layanan mesra. Wang ini bukan mudah untuk diperolehi!","lastmod":"2026-06-04","duration":"0:10:06","url":"/play/19261978.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTRiYmM4MGNhMzM2MzMxMTBiNDgxN2U5ZjI5OTY0ZjcuanBn.cache","vod_id":19088095,"title":"Seorang lelaki mesum memaksa seorang wanita yang sangat cantik memakai baju renang dan menidurinya. Farajnya yang montok dan lembut ditumbuk dengan kejam oleh zakarnya yang besar.","lastmod":"2025-03-29","duration":"0:19:23","url":"/play/19088095.html"}]},
videoTitle: '"Gadis kebajikan" WeChat (istilah yang merujuk kepada wanita yang terlalu menarik dan mempunyai payudara besar), menampilkan pemandangan bilik mandi yang penuh ghairah dengan susuk tubuh yang sempurna, payudara yang polos namun besar, dan wajah yang terdedah dengan sempurna. 40 foto peribadi definisi tinggi, versi asal 1080P untuk koleksi.',
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=/`;
}
};
}