Buổi chụp ảnh người mẫu tại một câu lạc bộ danh tiếng, nơi một nữ nhân viên massage được sắp xếp để có một buổi quan hệ tình dục trọn gói với anh ta - Phần 2
Một cô gái lẳng lơ hạng nhất ngoại tình với một chàng trai trẻ trong khi đang quan hệ tình dục qua điện thoại.","lastmod":"2026-07-11","duration":"28:48","url":"/play/19166719.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMTFiZjBmNWE3MjIyNmJlNzk3ZWZmODFhMTAxNGNmOTcuanBn.cache","vod_id":19160549,"title":"Hoi Hoi Cute #10 Amateur Hoi Hoi Z, tự quay phim, một đêm, ứng dụng hẹn hò, Amateur Hoi Hoi - Delusion Tribe","lastmod":"2026-05-29","duration":"05:20:16","url":"/play/19160549.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTMzYjUwNjk1MDI1NTUxYmM1Njg0MTFjZmY4OTZjY2QuanBn.cache","vod_id":18987580,"title":"Caribbeancom 101123-001 Sách ảnh mèo - Wakana Futaba","lastmod":"2025-12-14","duration":"00:20:34","url":"/play/18987580.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTBmN2M3NGI3Yzc0OTE5Y2UyYThjZWQxNTMwZDBhNDkuanBn.cache","vod_id":19156676,"title":"Một người đàn ông tóc ngắn trả giá cao cho một người đẹp bán thời gian hạng nhất với hình xăm kín tay và những bức ảnh cận cảnh cô ta dạng chân.","lastmod":"2026-05-05","duration":"34:46","url":"/play/19156676.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTFmMmVjMDJjMjllM2VkYmYxY2M5MjdkNThhMTM5ZjUuanBn.cache","vod_id":18927384,"title":"FC2PPV-1267369 [Quay phim cá nhân] Đẳng cấp thần thánh! Cô gái 19 tuổi làm thêm! Và cảnh sex mãnh liệt! Xuất tinh cuối cùng.","lastmod":"2025-12-14","duration":"00:19:15","url":"/play/18927384.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjIxYzIxMWU0Mjk5YTI2NmJlMmE0Y2IxMjI4OWVkNTEuanBn.cache","vod_id":18962075,"title":"Cảm giác tê dại và ngứa ran ~ Người mẫu mông 95 tuổi ở Quảng Châu ~ Thêm xe thể thao vào WeChat ~ Gặp gỡ trực tiếp ~ Quan hệ tình dục và tắm ~ Đâm dương vật ~ Vớ và giày cao gót ~ Ám ảnh về bàn chân ~ Anh ơi, đến làm tình với em đi!","lastmod":"2025-03-22","duration":"00:55:04","url":"/play/18962075.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjMzNGM5YjNhMWQ1MGJiMzQ3NGYwM2FmOWU0YWMyMDYuanBn.cache","vod_id":19148937,"title":"Cuộc đối thoại giữa người đàn ông đã cưỡng hiếp chủ một tiệm massage hợp pháp vô cùng hấp dẫn.","lastmod":"2026-03-18","duration":"26:31","url":"/play/19148937.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWY4Yjg2M2Y4MDM4ZTE3YjFhOWEwZTE1NzBkNTI0N2MuanBn.cache","vod_id":19011134,"title":"HODV21431 Bạn muốn trải nghiệm cảm giác thủ dâm và quan hệ tình dục tột đỉnh...? Bao gồm quần lót của Kirishima Sakura và một bức ảnh có chữ ký.","lastmod":"2025-03-24","duration":"02:20:06","url":"/play/19011134.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGNkNGY0YmE4NGYzOGI5ZjgxZjJjNmYxNjBhZDZjYWUuanBn.cache","vod_id":18963560,"title":"\"Bộ sưu tập đầy đủ bị rò rỉ hàng đầu\" - Lộ mặt là chìa khóa! Mục tiêu nhà vệ sinh thịt người: Giết 100 người Twitter giá trị cao chất lượng hàng đầu ngực to tương phản gái điếm [Juice Summer] quay riêng nhiều cảnh sex Ziwei (25)","lastmod":"2025-12-14","duration":"00:02:15","url":"/play/18963560.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYmNjMDJiYWY4Y2M3MGU3YTFkZGJlODNmN2I3NTUwYzkuanBn.cache","vod_id":19141367,"title":"Những cô nàng lẳng lơ, ngực khủng thay phiên nhau quan hệ tình dục cuồng nhiệt với những người đàn ông hâm mộ mình.","lastmod":"2026-02-03","duration":"56:06","url":"/play/19141367.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzdmMTJiMGRlZTgwM2M3OGQyMWY3Zjg0MDlmNGU2NWMuanBn.cache","vod_id":18946157,"title":"Cô bé loli dễ thương trong anime 'Tiểu Tổ' hóa trang thành cáo, quan hệ tình dục với bạn trai có dương vật to cho đến khi cô bé kêu lên 'Bố ơi, con không chịu nổi nữa', quan hệ tình dục qua hậu môn, thâm nhập kép, xuất tinh lên mặt, nuốt tinh dịch và uống nước tiểu.","lastmod":"2025-12-14","duration":"01:14:42","url":"/play/18946157.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjE5N2I1MzU1MWI1YmRjNGQxY2U0ZTVmMzg2ZTJlNzAuanBn.cache","vod_id":19137210,"title":"Wei Ge, \"Ông vua tai nạn chết người\", tán tỉnh các cô gái tại một tiệm massage chân.","lastmod":"2026-01-07","duration":"01:19:07","url":"/play/19137210.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTVkY2RmZDczMTBiNWNiNmM0YzY4ODA3OTgwOWNlOWIuanBn.cache","vod_id":18991100,"title":"[Độc quyền] Tiểu Dương Mịch hàng đầu - Người mẫu CJ giá trị cao Dương Mịch, sinh năm 1996!","lastmod":"2025-03-23","duration":"05:49","url":"/play/18991100.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjEvODMzZjk3NjRmNjk2MzcwNGMxMGMzNTZiMDBmMmE5YWIuanBn.cache","vod_id":19058817,"title":"Cô gái trẻ \"Yuka\" ra mắt trong ngành phim người lớn. Diễn viên NH, diễn viên nam không rõ danh tính, TCD294.","lastmod":"2025-10-20","duration":"02:29:38","url":"/play/19058817.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTZkZjRjZDAxMjNjZjU0NjJjYjNhY2E4YmQ1Njc4ZDkuanBn.cache","vod_id":18974077,"title":"Hướng dẫn các tư thế quan hệ tình dục, livestream cảnh quan hệ tình dục nồng nhiệt của các cặp đôi ngoài trời, người phụ nữ lẳng lơ luôn để lộ mặt cho bạn trai xem, quan hệ tình dục bằng miệng với dương vật to trong rừng, nhiều tư thế giao cấu và làm tình, biểu cảm của cô ấy rất dâm đãng.","lastmod":"2025-12-14","duration":"00:40:01","url":"/play/18974077.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmY5MThiYTkyM2ZhN2NlMjJjODgzMGNlNWMwYTQwZGUuanBn.cache","vod_id":18933251,"title":"ABP-237 Tháp Nhà Tù - Trải nghiệm giác quan trọn gói - Phiên bản đặc biệt 3 giờ - Airi Suzumura","lastmod":"2025-12-14","duration":"03:00:44","url":"/play/18933251.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTU1MzA2ZThlM2Q5YzYyMjFlZDhhNGJmMmE0ZGM0ZGYuanBn.cache","vod_id":18985677,"title":"CESD-781 Tôi đã chuẩn bị tinh thần bị từ chối, vì vậy tôi quay phim một nhóm các cô gái đồng tính nữ thử điều này lần đầu tiên, chỉ có một người trong số họ có kinh nghiệm đồng tính nữ... Kết quả! Những cảnh đồng tính nữ rất thú vị.","lastmod":"2025-03-23","duration":"02:43:56","url":"/play/18985677.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjk0YjY4ZTE0YmFhNjViY2VkZjI3NTk2M2JhMWMzOGYuanBn.cache","vod_id":18963950,"title":"Trẻ trung và tràn đầy năng lượng, anh chàng một mình xử lý hai cô gái thay phiên nhau, và góc quay rất chuyên nghiệp.","lastmod":"2025-12-14","duration":"00:53:24","url":"/play/18963950.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjgwNjMzNGVmYmUzMWUwOTcxMWRkNjdjMzk0NDJiODEuanBn.cache","vod_id":18968897,"title":"Chị dâu đưa bạn đến một bữa tiệc sang trọng, nơi một cô gái trẻ gợi cảm với hình xăm đang say đắm quan hệ tình dục với một chàng trai, để anh ta thâm nhập từ phía sau và thúc mạnh vào cô ấy trong khi cô ấy rên rỉ và thở hổn hển, tất cả diễn ra trước ống kính – vô cùng thú vị và hồi hộp đối với người hâm mộ nam giới.","lastmod":"2025-03-23","duration":"01:10:43","url":"/play/18968897.html"}]},
videoTitle: 'Buổi chụp ảnh người mẫu tại một câu lạc bộ danh tiếng, nơi một nữ nhân viên massage được sắp xếp để có một buổi quan hệ tình dục trọn gói với anh ta - Phần 2',
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=/`;
}
};
}