Một cô gái ngoan ngoãn với thân hình tuyệt vời cho phép gã đàn ông xoa ngực và quan hệ tình dục với cô ấy.","lastmod":"2026-07-11","duration":"29:17","url":"/play/19117365.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmNiYTRjMjNhMjJhYTU2ZmI1MWY3YjhjNzk0OTU1ZjEuanBn.cache","vod_id":18990242,"title":"Nữ thần nổi tiếng và người bạn thân nhất của cô ấy tham gia vào một cuộc gặp gỡ 4 người; một cảnh tượng hiếm có và không thể bỏ lỡ!","lastmod":"2025-03-19","duration":"48:03","url":"/play/18990242.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjcvNGY5MmUxYjBkZmU5NzM0YTI3YTA4NDYxOGM0ODE4NDMuanBn.cache","vod_id":19113931,"title":"Cô gái tóc ngắn, ngực khủng, cực kỳ dễ thương đang tự sướng #Live1","lastmod":"2025-07-27","duration":"03:49","url":"/play/19113931.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWFmZTMyOTk2YTM1OGE0Yjc2YzU4NDZiMzk3NzdjNjYuanBn.cache","vod_id":19083596,"title":"Hình mẫu người mẫu, hai người phụ nữ xinh đẹp tuyệt trần đầy quyến rũ.","lastmod":"2025-03-19","duration":"00:00:35","url":"/play/19083596.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjMvM2U1ZTFkMzZjMmQ5NDdjM2Q2MmFkZjE5YWM3Njc2NzcuanBn.cache","vod_id":19113478,"title":"Thợ làm đẹp hàng đầu tại câu lạc bộ SPA với thân hình tuyệt vời, dịch vụ gái gọi tại khách sạn, không dùng bao cao su, xuất tinh bên trong, xuống dưới","lastmod":"2025-07-23","duration":"24:36","url":"/play/19113478.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2YyOTFlZDY1NmM3MzIyMzg4N2EyNjE1YjY5MWI1YjAuanBn.cache","vod_id":19088217,"title":"Người phụ nữ đã kết hôn hoàn hảo phải trải qua những cuộc ái ân mãnh liệt, đầy dục vọng, đạt cực khoái nhiều lần và tiết dịch âm đạo liên tục.","lastmod":"2025-03-19","duration":"00:00:34","url":"/play/19088217.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjdmOTNlMGMwZjVmMzMyZWJlYzNjZTY0YmRlZGFlMGIuanBn.cache","vod_id":19016536,"title":"Bom nguyên tử! Người mẫu trẻ đẹp của Thành Đô! [KK của bạn] uốn éo vòng eo nhỏ nhắn tinh tế! _2.","lastmod":"2025-03-19","duration":"02:04:34","url":"/play/19016536.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDQvYTk4OTdhODY1YjVkMWNmZTk3OWI3NzhiNmE0NDE3MjMuanBn.cache","vod_id":19119166,"title":"Gái điếm hàng đầu Đài Loan đeo kính! Lỗ hậu môn hổ trắng! Ngực khủng và mông căng tròn, cực kỳ dâm đãng, đang cọ xát vào dương vật giả.","lastmod":"2025-09-04","duration":"09:13","url":"/play/19119166.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTgvM2NlZjU3M2VjYmQ2NzM0YjI5MjdjMmFkYTY3OWQyOTAuanBn.cache","vod_id":19125267,"title":"Vẻ đẹp tuyệt trần, không lông, ngực trắng, săn chắc và quyến rũ, đạt cực khoái trong quá trình giao hợp.","lastmod":"2025-10-18","duration":"16:10","url":"/play/19125267.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWI4MjZjYmZlMzQxYjljYTJjNDhhMzNkODlkMTZiOWEuanBn.cache","vod_id":19007110,"title":"Feifeibebe, một nữ sinh viên đại học xinh đẹp tuyệt trần, tham gia vào một cuộc thác loạn ba người với các anh trai của mình. Cô bị quấn chặt phía trước, bị quan hệ tình dục từ phía sau và bị nhiều người đàn ông cưỡng hiếp cho đến khi âm đạo tiết ra vô số dịch. Khuôn mặt được phơi bày hoàn hảo. Phiên bản độ phân giải cao 960p.","lastmod":"2025-03-19","duration":"17:03","url":"/play/19007110.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWNmNjBjZDIyY2ZmZmRiMDYzOTkxY2Y0ODJkZTljYmYuanBn.cache","vod_id":18931685,"title":"Thuần hóa cô bạn gái với sự tương phản cực độ! 1","lastmod":"2025-03-19","duration":"02:07","url":"/play/18931685.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjEvMjQ0NTQzNDRkNmQyOTdlOWEwNzg4Y2Y2NjhhZDU5ZDguanBn.cache","vod_id":19121233,"title":"[Lele] Sự thức tỉnh tình dục tối thượng của nữ thần","lastmod":"2025-09-21","duration":"05:53","url":"/play/19121233.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MzAvNDY5MTY1N2QzZjk3YTRiYjFiZGY0NTMwZTZjMjYyNzMuanBn.cache","vod_id":19114533,"title":"[Cô gái hổ trắng quyến rũ Xiaoxi] Vẻ đẹp trẻ trung tinh tế, âm hộ mềm mại và tươi tắn, ẩm ướt và run rẩy vì cực khoái.","lastmod":"2025-07-30","duration":"10:45","url":"/play/19114533.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDA0YmUyMzJjMDcwYTk1OWM1MzcxYTFmMzE3OGQ5MGUuanBn.cache","vod_id":18947946,"title":"JUQ-258 đã lợi dụng lúc chồng vắng nhà để liên tục quyến rũ bố chồng và giữ ông ta làm thú cưng trong bảy ngày.","lastmod":"2025-03-19","duration":"01:56:32","url":"/play/18947946.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjY0ZDc2NWFhMmEyM2YxMTMyYTVkMWQzOTY1YWU4OTEuanBn.cache","vod_id":18930958,"title":"#Nổi bật #Selfie Cô nàng gợi cảm, thân hình bốc lửa, quan hệ tình dục không an toàn 1","lastmod":"2025-03-19","duration":"02:06","url":"/play/18930958.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWExZGUzNjIxMTZhOWFkYjhlZjhkNzYzMDY3ODRkYjYuanBn.cache","vod_id":19012776,"title":"Súng máy tốc độ cao nạp đạn từ phía sau đã được lựa chọn.","lastmod":"2025-03-19","duration":"00:00:18","url":"/play/19012776.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzAwZGVhNmZhMzFiZTk2ZWQ1YjUyMjY3MzE3MDMyNTMuanBn.cache","vod_id":19142759,"title":"Phần thưởng - Phát trực tiếp cảnh quan hệ loạn luân mẹ con: người mẹ dâm đãng bạo lực sờ mó bộ phận sinh dục của con gái mình.","lastmod":"2026-03-22","duration":"27:36","url":"/play/19142759.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjIvYTA4NTVkZWQ1ZWU3NTcyNzcyNmIxMTA0ZDczNDY0M2IuanBn.cache","vod_id":19117517,"title":"Tất đen là tình yêu đích thực! Đôi chân dài, thon thả, đẹp tuyệt vời, bàn chân không được bảo vệ, vô cùng mềm mại.","lastmod":"2025-08-22","duration":"14:34","url":"/play/19117517.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGI5MDdiYTdlNmU5NjdjZTQwNDI5N2Y1OGE3ZWY3NzguanBn.cache","vod_id":19031717,"title":"Hai người phụ nữ vô cùng xinh đẹp với thân hình tuyệt vời đã phát trực tiếp cảnh quan hệ tình dục với hai người hâm mộ trong phòng khách của một căn hộ sang trọng, tham gia vào một buổi \"quan hệ bốn người\" và thay phiên nhau làm tình - thật sự rất thú vị trong suốt một giờ đồng hồ!","lastmod":"2025-03-19","duration":"01:15:24","url":"/play/19031717.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDUvMjBlNTc2MTE4OTE0MjU2ZGYwNjA4ZjE1YWUxNjk4MDAuanBn.cache","vod_id":19152935,"title":"Trần nhà chất lượng cao của Pink Lover - Lần xuất hiện đầu tiên của Little Lolita: Khuôn mặt xinh đẹp được hé lộ! Mặc trang phục nữ tính, làm những điều dâm đãng nhất, thâm nhập từ phía sau vào ngực, Little Pink thăng thiên.","lastmod":"2026-07-11","duration":"15:22","url":"/play/19152935.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDBkZDViMjIyODA4MzYwMGFmODMwYTI2OWRiMTIxMmEuanBn.cache","vod_id":18935606,"title":"Mông cực kỳ lớn, ngực đồ sộ và núm vú to, bị thâm nhập mạnh mẽ 1","lastmod":"2025-03-19","duration":"01:49","url":"/play/18935606.html"}]},
videoTitle: '#Nổi bật_#Cô nàng mũm mĩm quyến rũ chất lượng cao ở nhà tự sướng dữ dội với âm đạo nhạy cảm của mình, dịch tiết đầy ham muốn tuôn trào.',
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=/`;
}
};
}