Cô ta như một cái vòi nước, sàn nhà ngập tràn dịch tiết dâm đãng của cô ta. Cô ta dâm đãng đến nỗi ngực cô ta to và trắng.","lastmod":"2026-07-11","duration":"01:29:13","url":"/play/19161642.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNThiMTg0YTEyOWE0OGM5NTU4NjRkOTE3MDA1YWJkN2YuanBn.cache","vod_id":19139190,"title":"Người đẹp mảnh mai, chân dài, đi giày cao gót, sử dụng giọng nói quyến rũ và đạo cụ tương tác để kích thích thủ dâm.","lastmod":"2026-01-19","duration":"36:35","url":"/play/19139190.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZmE2NDcwODI2YmFiOWE3YTYyNjBiYWYwZTFmNWJjNTMuanBn.cache","vod_id":19143218,"title":"Nữ thần gái gọi cao cấp, người nổi tiếng trên mạng xinh đẹp nhất với vòng một đầy đặn, làn da trắng hồng, sinh viên quốc tế.","lastmod":"2026-02-13","duration":"35:09","url":"/play/19143218.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGIwOTI1ZDg5ODAwZmQwOWFjYjNmYTBmZDFlNmQ3OTEuanBn.cache","vod_id":18952823,"title":"⭐Trẻ trung và bất khả chiến bại⭐ Cô Dong, một người có sức ảnh hưởng trên Twitter hàng đầu với đôi chân dài miên man theo phong cách TikTok, trình diễn điệu nhảy khỏa thân vừa ngọt ngào vừa quyến rũ trong nhiều bộ đồng phục và đồ lót khác nhau—cô ấy biến mất khi đang nhảy (11)","lastmod":"2025-12-14","duration":"00:01:08","url":"/play/18952823.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzAxOTIyZWE5ZGJhZDE3M2JmMGEyNzJmNzE4ZWI0MjEuanBn.cache","vod_id":19012691,"title":"Hoàng gia Trung Hoa - Lén nhìn trộm cô giáo chân dài thay đồ nhưng bị trừng phạt dâm ô bằng việc quan hệ tình dục không an toàn với một nữ sinh còn trinh - Búp bê Weng Yucheng!","lastmod":"2025-03-24","duration":"30:49","url":"/play/19012691.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmMyN2UwMTM0YmQ2YjQxY2M1NjI3NGI5MGM1Y2FlOWEuanBn.cache","vod_id":18951886,"title":"Trong dịp Tết Nguyên Đán, tôi đã làm nghề làm tóc, khoe mặt và dùng đạo cụ để tự thỏa mãn. Ngực tôi có hình trái tim, còn âm hộ thì hồng hào và quyến rũ đến khó tin.","lastmod":"2025-12-14","duration":"01:54:49","url":"/play/18951886.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmI3NGJlZGU0Y2ZhNWE2MWVhOTFhZTY3OTk4OTA4YzguanBn.cache","vod_id":18941005,"title":"Một người phụ nữ vô cùng xinh đẹp với thân hình tuyệt mỹ đã bị đánh thuốc mê và bất tỉnh, để mặc cho kẻ xấu tùy ý thao túng. Làn da trắng mịn, thân hình quyến rũ, đôi chân dài, bàn chân xinh đẹp, tất chân và giày cao gót...","lastmod":"2025-12-14","duration":"00:15:58","url":"/play/18941005.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTdkZGZjOWMxNzFkNjY3OTM5YTkzZGVkOTc2ODQzYzguanBn.cache","vod_id":19148982,"title":"MomShoot - LuckyStud thích thú với bộ ngực lớn và vùng kín gợi cảm của người hàng xóm nữ trưởng thành nóng bỏng. [MomShoot]","lastmod":"2026-03-18","duration":"33:25","url":"/play/19148982.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDc4ODg1MWE3MmRkNGM5NmY4NjA5NjQzYjU4ZGM1YzcuanBn.cache","vod_id":18960662,"title":"Một nữ sinh viên múa cao ráo, chân dài đến từ trường nghệ thuật và là người nổi tiếng trên mạng tên là [Shi Rui] đã hoàn thành một nhiệm vụ tùy chỉnh đắt tiền cho người tình giàu có của mình để kiếm thêm tiền ☀️ nhiều động tác xoạc chân, thủ dâm không dùng nút bịt bên trong và đi tiểu (8)","lastmod":"2025-12-14","duration":"00:05:34","url":"/play/18960662.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTZlOGM2ZDFiMWQ0ODFhNjRiNmViNjNmZGJkNTBjOTkuanBn.cache","vod_id":18978221,"title":"Một người mẫu nữ chân dài, mặc quần tất đen, ra mắt trong ngành công nghiệp giải trí dành cho người lớn, vùng kín phủ đầy lông mu của cô ấy mở rộng cho những người hâm mộ nam giới chiêm ngưỡng, thân hình gợi cảm, đầy sức sống của cô ấy mời gọi họ quan hệ tình dục với cô ấy. Đừng bỏ lỡ màn trình diễn hấp dẫn này!","lastmod":"2025-03-23","duration":"05:21:24","url":"/play/18978221.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTkvMGJhZmMxOWViNzBiMTBhOWZkNGYzZmJiNDZhMGMxMDguanBn.cache","vod_id":19058226,"title":"[Trung Quốc] Xe pháo chân dài chất lượng cao, xuất tinh bên trong","lastmod":"2025-10-18","duration":"16:18","url":"/play/19058226.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWZjMmFkYmY4MDU4Njg4NTI4M2I1NjdjYzM1ODhjMzkuanBn.cache","vod_id":18993311,"title":"Nền tảng dễ thương này (trước đây là Kawaii) có một cô gái xinh đẹp với khuôn mặt trẻ trung và vòng một lớn. Buổi phát trực tiếp của Xuanxuan 1030 cho thấy vòng một thực sự lớn của cô ấy và màn tự thỏa mãn đầy đam mê rất quyến rũ.","lastmod":"2025-12-14","duration":"00:43:46","url":"/play/18993311.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjM2ZWRiNzNkMjA3ZjkxZjMxNDcxY2VmNDc0YTIyZTIuanBn.cache","vod_id":18953530,"title":"Vớ, giày cao gót và bộ ngực đồ sộ đến kinh ngạc; một nô lệ tình dục suốt đời cho những gã đàn ông dâm dục, những bộ đồ lót quyến rũ, những cảnh quay cận cảnh vùng kín đang mở rộng, những màn giao hợp với đạo cụ, tiếng rên rỉ và thở hổn hển; đừng bỏ lỡ màn quyến rũ đầy kích thích với những màn thay đổi trang phục này!","lastmod":"2025-12-14","duration":"01:59:34","url":"/play/18953530.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MDMvNDBjMWVmMjFhOGNjZTZmOTNmZWIxYTY2YTgxODkxNWIuanBn.cache","vod_id":19045191,"title":"Một người phụ nữ cao, mảnh mai mặc quần tất đen đang quan hệ tình dục, bao gồm hôn kiểu Pháp, quan hệ tình dục bằng miệng và quan hệ tình dục từ phía sau khi đứng, trong khi vẫn mặc quần tất hở và giày cao gót.","lastmod":"2025-08-02","duration":"29:01","url":"/play/19045191.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjUwYTAwZTQyMDFkY2U5MTdkMzBiOWZkNWQxYmJiNzEuanBn.cache","vod_id":19147920,"title":"Cô nữ sinh xinh đẹp như nữ thần kéo chiếc quần lọt khe xuống, để lộ vùng kín sạch sẽ, hồng hào. Cô vén váy lên, bộ ngực trắng nõn, vòng eo thon gọn và đôi chân quyến rũ uốn éo khi cô rên rỉ.","lastmod":"2026-03-12","duration":"53:11","url":"/play/19147920.html"}]},
videoTitle: 'Làn da trắng hồng, đôi chân dài miên man và vòng một đầy đặn, gợi cảm.',
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=/`;
}
};
}