Cực khoái nguyên bản - Nữ sinh viên đại học ngực khủng nghiệp dư xuất tinh - Tinh dịch tuyệt vời của Riko","lastmod":"2026-07-11","duration":"01:29:56","url":"/play/19164402.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGY3NTFmZDEzMjgwOTZlNTZiMzQ1M2I5NGY4YjZiYTQuanBn.cache","vod_id":18971780,"title":"IPX-098 Thiên đường khu đèn đỏ: 4 cảnh nóng + Salon hồng + Ogura + Mát-xa chân đồng phục - Nanami Misaki - Tuyển chọn 240 phút - Phiên bản đặc biệt đầy đủ - 7 cảnh quay hấp dẫn!!","lastmod":"2025-12-14","duration":"03:59:32","url":"/play/18971780.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTAyOGNkN2JjYWQ0MjdmYWU3MDMzMGEzYmFiMDA3MjEuanBn.cache","vod_id":18981377,"title":"UFD-045 Quan hệ tình dục với một nữ nhân viên văn phòng xinh đẹp - Kanako Ioka","lastmod":"2025-03-23","duration":"01:58:58","url":"/play/18981377.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzAyMDNmZjU1YzQ4ZWZiYzYzNDYxNmM5MGU5ZjU5MmIuanBn.cache","vod_id":18927525,"title":"FC2PPV-1278841 [Video hiếm có] [Bộ mặt thật lộ diện] Tôi tưởng mình đã gặp được một người đẹp tuyệt trần, nhưng hóa ra cô ấy lại là người yêu cũ.","lastmod":"2025-12-14","duration":"00:48:58","url":"/play/18927525.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWQ4MzhmMDZjYmJjMDY0YTNhNjYyODc5MTkyMWM3NzcuanBn.cache","vod_id":18928454,"title":"Heydouga4017-PPV119-23 Tất cả các video được quay trong vòng năm năm qua.","lastmod":"2025-12-14","duration":"00:28:50","url":"/play/18928454.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTgvMDQyNDYxOTg1NzcyMTk3YTNmMjdjMTEyNTJhM2EyZjEuanBn.cache","vod_id":19034084,"title":"CHERD096 \"Bạn có phiền không nếu lần đầu tiên của tôi là với một người phụ nữ lớn tuổi hơn?\" Lần quan hệ tình dục đầu tiên giữa một người còn trinh và một người phụ nữ đã kết hôn, trưởng thành.","lastmod":"2025-05-18","duration":"02:07:23","url":"/play/19034084.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTc5MWVjMGQ5YjYxOGZiYjVjZTk2NTk4ZmI3ODM0Y2YuanBn.cache","vod_id":18942992,"title":"SHIROUTOZANMAI0029 #Tìm kiếm sự hỗ trợ, cuối cùng tôi đã gặp một cô gái dễ thương lái chiếc I9 nhỏ xíu! Và đã có một cuộc ái ân nồng cháy với cô gái mà tôi đã cạo râu ở Anh năm ngoái. Phần Hai","lastmod":"2025-12-14","duration":"00:14:55","url":"/play/18942992.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGIwN2ZlMzBlNDRjYmVkNGI5MTliMzY5MGM1MmFhYzYuanBn.cache","vod_id":18973090,"title":"CAWD-573 Dù tôi có vợ con…!! Nếu cô cháu gái quê mùa của tôi bị phát hiện, nó sẽ gặp nguy hiểm, nhưng nó lại thì thầm vào tai tôi, “Em ở đây!” rồi liên tục quyến rũ tôi vào cuộc ái ân nồng nhiệt.","lastmod":"2025-12-14","duration":"01:55:23","url":"/play/18973090.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNTRhMzE5ZDYwN2FmNGI5ZGU0ZWE2OTk4NmRiNDI3YTguanBn.cache","vod_id":19135983,"title":"Lời tán tỉnh trên ứng dụng hẹn hò, quan hệ tình dục trái phép, cuộc gặp gỡ tình dục bất hợp pháp 009, nữ diễn viên vô danh MEKO-356","lastmod":"2025-12-30","duration":"02:16:54","url":"/play/19135983.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTY2YTU2NmY0OGU1ODFlNzI0MWRkYWM0ZjdmY2Q2NmYuanBn.cache","vod_id":18982253,"title":"SNIS-491 Dịch cơ thể hòa quyện, tình dục mãnh liệt - Mimi Saotome","lastmod":"2025-03-23","duration":"01:58:00","url":"/play/18982253.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzEzMDVhNWJjMTBmZjNjOWU1N2ViNTBmYTJlZDliOGUuanBn.cache","vod_id":18977424,"title":"[Không kiểm duyệt] ZOCM-055 Một cô gái lẳng lơ cầu xin đồ chơi tình dục - Quan hệ tình dục bẩn thỉu đến tận rạng sáng","lastmod":"2025-12-14","duration":"02:38:28","url":"/play/18977424.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2JkOTZiZTk4Y2RjZTc1MDYxNDA1OWRlMjQyN2M1YzIuanBn.cache","vod_id":18982173,"title":"328HMDNV-581 Một người vợ xinh đẹp 35 tuổi với vòng ngực cỡ G được bôi dầu khắp người trong phòng khách sạn và đạt cực khoái nhiều lần nhờ một video sex được quay từ góc nhìn người thứ nhất bởi một chàng trai trẻ hơn cô một tuổi.","lastmod":"2025-12-14","duration":"01:38:53","url":"/play/18982173.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYTE4YzAyNzZhZjhkZjAyYzk4YmJmNDA4MWMzYmFjNWQuanBn.cache","vod_id":19162333,"title":"Một influencer Douyin khác với 20 người theo dõi gặp phải trở ngại lớn; các video riêng tư của cô, bị bạn trai rò rỉ, trái ngược hoàn toàn với mối quan hệ của cô với người theo dõi nam hàng đầu.","lastmod":"2026-07-11","duration":"06:32","url":"/play/19162333.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjAyMDM1OGQwOTI2M2ZlYjJkZTE4NDc5NzY1OGJkOWIuanBn.cache","vod_id":18962385,"title":"USAG-050 Maya-chan, một nữ sinh viên đại học nóng bỏng, thân hình đầy đặn với vòng một cỡ I, van xin được xuất tinh sau lần quan hệ tình dục đầu tiên sau hai năm.","lastmod":"2025-03-22","duration":"02:37:29","url":"/play/18962385.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmJmNWYwNzVjNTAzODBhMzVhMmI1Mjc0MWEyODVkNjkuanBn.cache","vod_id":18941536,"title":"LZBS-051-Đồng tính nữ! Lần đầu quan hệ tình dục đồng tính nữ, tuyển chọn 5 giờ 2, cảm giác thật dịu dàng","lastmod":"2025-12-14","duration":"02:21:38","url":"/play/18941536.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvOTlmNzBmZThiMmI1MTYzNzJmOTY3YTM1MmM0NjliMWMuanBn.cache","vod_id":19159836,"title":"HEYZO 3211 Phụ nữ đã kết hôn và Buga: Một người phụ nữ đã kết hôn năng động về tình dục với vòng ngực cỡ G và là một nữ nhân viên văn phòng cao cấp. Một cuộc gặp gỡ tình dục nồng nhiệt và thỏa mãn, giúp giải tỏa căng thẳng và xua tan sự khó chịu do quấy rối tình dục gây ra.","lastmod":"2026-05-24","duration":"49:12","url":"/play/19159836.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjEvNmQ1OWYxZDU4NzE0ZmY5ZWNiMDJkMWQ4YzExY2U4NjQuanBn.cache","vod_id":19058766,"title":"BlanfantClub Succubus Nanama Sex Dance 4K","lastmod":"2025-10-20","duration":"08:42","url":"/play/19058766.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2YyMmVlYzZmMmE3N2VkZGU5M2VmMjg3YzgwODcwNjUuanBn.cache","vod_id":19017719,"title":"mist397 Mary Orange vào ban đêm... Tận hưởng tình dục với Mary Orange xinh đẹp tại khách sạn.","lastmod":"2025-03-24","duration":"02:24:56","url":"/play/19017719.html"}]},
videoTitle: 'ONEX-033 Video sex của cô gái vô liêm sỉ 02',
language: 'vi',
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('Đã sao chép liên kết!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
}
}
},
// 切换布局
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=/`;
}
};
}