Hai cảnh ghép lại với nhau. Cảnh 1: Một cô gái xinh đẹp, quyến rũ tham gia vào các cảnh quay cận cảnh hôn kiểu Pháp, vuốt ve, quan hệ tình dục bằng miệng, cưỡi ngựa và quan hệ tình dục mạnh mẽ. Cảnh 2: Một cô gái có vẻ ngoài trong sáng, ngây thơ và một cô gái dễ thương, ngây thơ khác mặc váy tham gia vào các cảnh quay cận cảnh hai chân dang rộng, quan hệ tình dục bằng miệng, cưỡi ngựa và quan hệ tình dục mạnh mẽ.
Chủ nhân cửa hàng: Anh Horn đi tìm hoa và khám phá bí mật của bể tắm vàng Macau cùng những bộ ngực tuyệt đẹp: Dịch vụ trọn gói bao gồm massage spa, massage dầu, tình dục và oral sex.","lastmod":"2026-07-11","duration":"","url":"/play/19207035.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzAwZWFmNzg0ODYwNDFiZmJkMzI2MDk1OTczMDQxZjAuanBn.cache","vod_id":19104890,"title":"Một nữ streamer xinh đẹp đã mời người hâm mộ đến nhà mình để tham gia một buổi gặp gỡ tình dục được phát trực tiếp!","lastmod":"2025-03-26","duration":"1:06:39","url":"/play/19104890.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDIxN2FhMTIwZjI3ZTYxYTgyZWViNzY5M2M3NmMyY2QuanBn.cache","vod_id":19035430,"title":"Bảy ngày sử dụng dịch vụ gái gọi cao cấp để tìm hai cô gái cho cuộc vui ba người.","lastmod":"2025-03-26","duration":"0:24:03","url":"/play/19035430.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzI1YzY5ZWE4Nzg5ODU1M2IzYmI4MTkwMGEzOTViMDguanBn.cache","vod_id":19114082,"title":"Cô nàng nổi tiếng trên mạng [Yuzu Cat] cosplay thành nữ sinh trung học mặc tất đen bóng, Yuzu Cat ôm hộp cơm bento kiểu truyền giáo và quan hệ tình dục mãnh liệt 1","lastmod":"2025-03-26","duration":"0:22:30","url":"/play/19114082.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjg0ZjYwMTA2ZWEzNzQ5ZjJlNThlMDQzYjFhODZmZjYuanBn.cache","vod_id":19088779,"title":"Phim tài liệu nghiệp dư về người vợ số 3: Một người vợ Ukraine lai với vòng một đẹp như người mẫu trải nghiệm lần đầu tiên quan hệ tình dục tập thể.","lastmod":"2025-03-26","duration":"1:58:46","url":"/play/19088779.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNmQ4NDFlMmJiODgzYzIyZmMyMWY3Yjc1OGI4YTI4MjAuanBn.cache","vod_id":19176610,"title":"Mỗi lần chúng tôi làm tình, cô ấy hoàn toàn đắm chìm trong trải nghiệm đó, dùng miệng kích thích tôi như thể đang thưởng thức một viên kẹo mút.","lastmod":"2026-01-27","duration":"0:07:02","url":"/play/19176610.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMmZjMjgwYjI2NDY4YWFkODM1MTRhNWE2NGNjODQ5ZGIuanBn.cache","vod_id":19096650,"title":"4. Tôi muốn được một người phụ nữ như thế mút... Đàn ông không thể cưỡng lại được kiểu quan hệ tình dục bằng miệng đó... Cô ấy mút sạch dương vật của họ trong nháy mắt!","lastmod":"2025-03-26","duration":"2:30:23","url":"/play/19096650.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTYvNDU1NDI1ZjNmZGRiMWJhYzA3Yzk0NTBjZDYyNzc3ZjAuanBn.cache","vod_id":19154913,"title":"Lần đầu tiên cởi quần áo Shin Amateur Hunter Diễn viên không rõ danh tính FIT005","lastmod":"2025-09-15","duration":"2:00:35","url":"/play/19154913.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjhhMGY3ZGU1OTNhYTk5ZjdjNGI4YmQxMTdlY2U0ZGMuanBn.cache","vod_id":19193781,"title":"Loạt ảnh mới nhất năm 2025 với những đồng nghiệp và hàng xóm hấp dẫn; tôi gặp họ mỗi ngày, ảnh của họ có trong điện thoại của tôi và tôi chào hỏi họ.","lastmod":"2026-04-19","duration":"0:00:39","url":"/play/19193781.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MDEvZWRjNGNmOGM1MjUyYzUxMjFlMGRhNjIyMmEwNDhkODUuanBn.cache","vod_id":19137130,"title":"Nữ thần hàng đầu của Green Broadcasting, cô nàng xinh đẹp Doubaobao thật quyến rũ, cứ liên tục phun nước!","lastmod":"2025-06-01","duration":"1:20:45","url":"/play/19137130.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGRlODk4ZGY2NmI2Yzg1NWEzZDhkY2ExMzZlYzMwMWIuanBn.cache","vod_id":19126856,"title":"XVSR358 Cưỡng bức thụ tinh cho nữ sinh vô tội Wakatsuki Mariya.","lastmod":"2025-03-26","duration":"1:26:12","url":"/play/19126856.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTQwNWNmNGYxZGZmMDM3ZGQwODc0N2E0ZmM0MWExNzguanBn.cache","vod_id":19076414,"title":"SETM028 Cặp đôi bị tấn công bằng khí gas - Tuyển tập video NTR (4 cặp đôi, 284 phút)","lastmod":"2025-03-26","duration":"4:43:42","url":"/play/19076414.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDYyNjE5OTM4NTczNTA2NWEyMTZjNmVhM2JhMGQ2MzMuanBn.cache","vod_id":19129164,"title":"Cô bé mặc đồng phục JK, dáng người loli, ngực đầy đặn.","lastmod":"2025-03-30","duration":"0:12:32","url":"/play/19129164.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZmY0MTZhNmJmMjYwMGM4ZjZmYTlmOTBmNmY0YjFhMzUuanBn.cache","vod_id":19200256,"title":"Anh ta tán tỉnh một cô gái xinh xắn với thân hình tuyệt vời, trông rất quyến rũ trong bộ bikini và ngủ với cô ấy. ☆ 10 Nghiệp dư Chuyên nghiệp","lastmod":"2026-05-20","duration":"4:46:21","url":"/play/19200256.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNGE1ZWUxYWY0N2U1YjViMzdjMjc2YTQxMzM2MTFlZWIuanBn.cache","vod_id":19195404,"title":"Tôi đang bán người vợ ngoại tình của mình. Giam giữ tại khách sạn 24 giờ [quan hệ tình dục bằng miệng ngay lập tức, thâm nhập ngay lập tức, xuất tinh ngay lập tức]. Mời sử dụng thoải mái. OPPAI","lastmod":"2026-04-27","duration":"1:59:47","url":"/play/19195404.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNmE2MmEwZTRmN2RiOTRhYmU5ZDcyNjVhNDI0Y2U5MDguanBn.cache","vod_id":19183630,"title":"Một bậc thầy về BDSM đã phát triển một hệ thống huấn luyện chuyên sâu cho nhiều con chó cái có giá trị cao và thân hình hoàn hảo.","lastmod":"2026-03-01","duration":"0:01:20","url":"/play/19183630.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MjAvMjE5OTc1Y2ZhNTIwODQzNTBhZDQ3NmVkYTQ0YWRjODQuanBn.cache","vod_id":19135688,"title":"Cô gái thuộc thế hệ Z siêu dễ thương và đáng yêu này còn khá trẻ, nhưng cô ấy có rất nhiều lông trên cơ thể - một mảng lông xù, sẫm màu. Cô ấy dang rộng hai chân và đưa nó vào sâu bên trong.","lastmod":"2025-05-20","duration":"0:29:54","url":"/play/19135688.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMmE2ZGNlYWI5MTQ5ZTg5MmRiNWE3ODJmYjBhMDNiNWYuanBn.cache","vod_id":19085855,"title":"Nữ thần gợi cảm trên Twitter 'Xiao Ba' vừa thực hiện buổi chụp hình riêng tư có trả phí mới nhất: màn liếm sâu khi quỳ xuống, cưỡi và thúc đẩy, xuất tinh ngẫu nhiên, lộ mặt hoàn hảo.","lastmod":"2025-03-26","duration":"1:11:02","url":"/play/19085855.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzM0ZTU2OTA0MWRmOGUwY2U0Zjk4OTVkNDhlNDQ4NTAuanBn.cache","vod_id":19174687,"title":"Một học sinh trung học ở Baihu đã bị một anh chàng đẹp trai quen biết qua mạng bằng nhiều thủ đoạn khác nhau. Họ cùng nhau đến một khách sạn, nơi cậu học sinh được quan hệ tình dục bằng miệng và được cho một dương vật lớn, sau đó là một màn quan hệ tình dục kiểu \"doggy style\" (quan hệ tình dục từ phía sau) mà cậu bị cưỡng bức liên tục cho đến khi la hét và khóc lóc. Cậu bị cưỡng bức ba lần liên tiếp.","lastmod":"2026-01-18","duration":"0:14:43","url":"/play/19174687.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYzMzODMxOGE5YjcyM2ExZDgyMzkwNjFlYzlmY2IxZjYuanBn.cache","vod_id":19202409,"title":"Những người đàn ông và phụ nữ độc thân khát khao tình dục gặp nhau để tham gia một buổi quan hệ tình dục tập thể 4 người đầy đam mê với màn phô bày toàn bộ khuôn mặt, quan hệ tình dục bằng miệng, liếm dương vật to, liếm núm vú, quan hệ tình dục trần truồng, một cuộc chiến tư thế, giao hợp và thúc đẩy mãnh liệt.","lastmod":"2026-05-31","duration":"1:00:22","url":"/play/19202409.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvYzcxZjU3M2U2Nzc2OTIxMDEyZDEyNjE5ZGEzMzBjZDUuanBn.cache","vod_id":19166442,"title":"Người chồng bị cắm sừng đã đưa vợ đi massage với một người đàn ông khác lần đầu tiên.","lastmod":"2025-12-13","duration":"0:33:07","url":"/play/19166442.html"}]},
videoTitle: 'Hai cảnh ghép lại với nhau. Cảnh 1: Một cô gái xinh đẹp, quyến rũ tham gia vào các cảnh quay cận cảnh hôn kiểu Pháp, vuốt ve, quan hệ tình dục bằng miệng, cưỡi ngựa và quan hệ tình dục mạnh mẽ. Cảnh 2: Một cô gái có vẻ ngoài trong sáng, ngây thơ và một cô gái dễ thương, ngây thơ khác mặc váy tham gia vào các cảnh quay cận cảnh hai chân dang rộng, quan hệ tình dục bằng miệng, cưỡi ngựa và quan hệ tình dục mạnh 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=/`;
}
};
}