Gadis baik, saya mahu pulang ke rumah dan tidur. Jangan buat bising, saya tak mahu, saya akan pancut. Cepat matikan lampu, sayang. Awak sangat kuat. Awak langsing dan sedikit pemalu. Awak tak menanggalkan pakaian pun sebelum lelaki itu memukul awak dengan kuat.Gadis baik, saya mahu pulang ke rumah dan tidur. Jangan buat bising, saya tak mahu, saya akan pancut. Cepat matikan lampu, sayang. Awak sangat kuat.","lastmod":"2026-07-11","duration":"54:20","url":"/play/19154741.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvM2VlNDlhZjI2NmIzNGVmNjNjZGMzMTZlODUxZDhlNzYuanBn.cache","vod_id":19135528,"title":"Siaran langsung menunjukkan pelajar sekolah yang tidak bersalah dan teman lelakinya menceburi industri hiburan dewasa, di mana payudara dan punggung mereka yang cantik dipermainkan tanpa belas kasihan.","lastmod":"2026-04-07","duration":"01:14:26","url":"/play/19135528.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2Q1MGEwODFlNWYxOWI5MTVjYTNlYzMxODM3MjQxZTMuanBn.cache","vod_id":19052269,"title":"MIAA060: Saya telah dibawa ke puncak syahwat oleh adik lelaki bekas teman wanita saya, yang saya sukai. (Hoshina Ai)","lastmod":"2025-03-29","duration":"01:59:30","url":"/play/19052269.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYzk4MWJiYTJhZmIzYzExMWJlYmU3ZDg2ZGU5ZTQ4YWUuanBn.cache","vod_id":19143175,"title":"Onlyfans, seorang influencer dalam talian, mencari peminat setiap minggu untuk meluahkan keinginan mereka yang tidak tercapai.","lastmod":"2026-05-14","duration":"07:43","url":"/play/19143175.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDI3NGQ1NDQ3NWFjMWMyZTcyYmIyYjY4MGUxZjgxZTIuanBn.cache","vod_id":19048767,"title":"Seorang wanita di Wilayah Shaanxi telah ditangkap kerana menjalinkan hubungan sulit dengan teman wanitanya yang cantik. Kehidupan seks mereka telah terbongkar.","lastmod":"2025-03-29","duration":"05:34","url":"/play/19048767.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjUvNWEwZTMyMzgzMTIwYjQwNTlhNmE1MmM0ZDQyMDFlOTcuanBn.cache","vod_id":19097134,"title":"Seorang pelajar perempuan berkaca mata yang kelihatan tidak bersalah namun mengejutkan seksi melakukan melancap berlebihan dan pancutan air mani.","lastmod":"2025-09-24","duration":"01:24:26","url":"/play/19097134.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDUxNTgyZjhiYjNlNWIwOWZkNmYwNTljMTI5ZDE5ZDkuanBn.cache","vod_id":18995334,"title":"[Definisi Tinggi, Tanpa Tapisan] Wajah Terbongkar!! Gaya Sinematik! [Versi Tanpa Potongan] Siapa sangka seorang ahli sihir kecil yang angkuh yang hanya dapat meluahkan cintanya dengan kekok boleh berubah menjadi seorang gadis yang begitu suci dan polos hanya dalam beberapa bulan?","lastmod":"2025-03-28","duration":"01:16:29","url":"/play/18995334.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2Y1Njc4OWM0ZDhjZDhlNzgyYTk4YjVjY2ZlOWI0MzMuanBn.cache","vod_id":19065051,"title":"Reiko Kitagawa, seorang wanita yang sudah berkahwin dan suci berhampiran SPRD1214.","lastmod":"2025-03-29","duration":"01:48:56","url":"/play/19065051.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDQ0NjUwMzE5ZWJiNTI0ZWZjYjlhNGQ5MGVlZmI2NTEuanBn.cache","vod_id":19040143,"title":"Seorang isteri yang masih dara telah menjadi gila kerana zakar lelaki lain dan malah menelannya. Seorang wanita berusia 30 tahun yang sudah berkahwin, yang telah menyembunyikan keinginan masokistiknya yang songsang, muncul dalam video dewasa tanpa pengetahuan suaminya.","lastmod":"2025-03-29","duration":"02:34:15","url":"/play/19040143.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzcxNWIwMDY3NzgzYmUyZTc3MzAyNzQ1MmIwNmM2ZDguanBn.cache","vod_id":19120490,"title":"Seorang pelajar kolej wanita Shanxi, Ma Yingbing, telah meminjam sebanyak 25,000 yuan pada 29 April 2025, yang kemudiannya didapati digunakan sebagai cagaran untuk video melancap. Dia kemudiannya gagal membayar balik hutangnya dan hutangnya telah dibawa ke muka pengadilan.","lastmod":"2026-01-25","duration":"28:22","url":"/play/19120490.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzFiNmMwY2VhMTcyNDVhNDg4NTRkYmM0ZjI2ODZmOTUuanBn.cache","vod_id":19127769,"title":"Bagaimanakah sebenarnya wanita yang sangat suci namun cantik ini boleh memujuk teman lelakinya untuk berpakaian wanita, menyamar sebagai lesbian, memakai stoking hitam dan pakaian dalam, dan melakukan hubungan seks dengannya sambil diikat dan dijilat olehnya?","lastmod":"2026-03-01","duration":"16:40","url":"/play/19127769.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjRlMmU5ZWM4NzllZWY1N2ZkZWI1MjJhYWJjNmMyNmUuanBn.cache","vod_id":19033402,"title":"Walaupun dia tidak pernah membiarkan saya memancutkan air mani di dalam dirinya, isteri saya membiarkan lelaki itu memancutkan air mani di dalam dirinya beberapa kali dalam video itu.","lastmod":"2025-03-29","duration":"01:59:46","url":"/play/19033402.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjkvMGVlNDBlZjVjNzMwZWQ3MzRjN2NhMmZhMDdjZjY0Y2YuanBn.cache","vod_id":19098001,"title":"Video seks pelajar kolej wanita Universiti Changqing, influencer Douyin","lastmod":"2025-09-28","duration":"18:22","url":"/play/19098001.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTUvODFmMDVmODQzNTEzOGYxZjFkNzFmN2RlMTE5MGRmNTEuanBn.cache","vod_id":19155468,"title":"Penstrim selebriti internet Douyin (TikTok) yang mempunyai jutaan pengikut, Su Beibei disyaki telah memasuki industri hiburan dewasa; videonya dengan badan yang sangat seksi telah bocor.","lastmod":"2026-07-14","duration":"03:41","url":"/play/19155468.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjYvYzMyZjhlNGQ5NjhiZmNhYWU4MDczZmU3YjU3YTQzMWYuanBn.cache","vod_id":19151777,"title":"Teman wanita saya, dengan susuk tubuh yang menakjubkan dan personaliti seksi, bakal diseksa mentah oleh abang saya dari belakang.","lastmod":"2026-06-25","duration":"00:00:43","url":"/play/19151777.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGIwZDAxMjZmNDFlY2U1OWYwZmUxY2ZkZTcwMDE5MTEuanBn.cache","vod_id":18985726,"title":"[China] Tuntutan sesat untuk sesi fotografi","lastmod":"2025-03-28","duration":"08:43","url":"/play/18985726.html"}]},
videoTitle: '[Drama Cina] Keinginan Teman Wanita Tulen yang Tidak Dipuaskan di Bawah Pengawasan Bingbing Xiong Xiong (Video)',
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=/`;
}
};
}