Nữ thần gợi cảm, cô gái trẻ quyến rũ trong bộ đồng phục và tất lưới, vô cùng cuốn hút, chàng trai trẻ say mê, thêm hai hiệp quan hệ.","lastmod":"2026-07-11","duration":"44:11","url":"/play/19129652.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWQwODI3M2YyZWI4ZTY4NDY4NDJiMGU5MzhlOWFlNGEuanBn.cache","vod_id":18994907,"title":"IENF-319 Một cô gái bình thường cố gắng làm hài lòng bạn trai của mình trải nghiệm một buổi mát-xa cận cảnh tại một tiệm làm đẹp dành cho nam giới! Một buổi mát-xa dầu cực kỳ xấu hổ nhưng trơn trượt.","lastmod":"2025-03-19","duration":"02:28:17","url":"/play/18994907.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDhhMjk5MmEyZmNlZjBkNTU3NmVmZjZiZTg4YjhmMjguanBn.cache","vod_id":18964170,"title":"Môi đỏ mọng, ngực khủng, cô em gái 21 tuổi, khoe vùng kín và tự sờ soạng trong khi quan hệ tình dục với bạn tình, thâm nhập kép, thân hình gợi cảm...","lastmod":"2025-03-19","duration":"02:14:16","url":"/play/18964170.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWQ5ZWQwYTI0MWNiZjA1YzNhZmQ4NTZkZjNiZDc5MTIuanBn.cache","vod_id":19006143,"title":"Người phụ nữ trong video có thân hình và ngoại hình tuyệt vời, xứng đáng với số tiền bỏ ra; tôi không ngờ kỹ năng oral sex của cô ấy lại xuất sắc đến vậy.","lastmod":"2025-03-19","duration":"14:54","url":"/play/19006143.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDY1NTc0YTdmNjY4MTRhNjEwMTY5ZTQwMDlhNTAzNzAuanBn.cache","vod_id":19025578,"title":"HUNTB-596 Một bữa tiệc hậu cung siêu nóng bỏng tại nhà với các nữ sinh viên đại học trong bộ đồ bơi! Em gái tôi là sinh viên đại học đang rất mong chờ mùa hè, và cô ấy cùng bạn bè đang có khoảng thời gian tuyệt vời tại nhà.","lastmod":"2025-03-19","duration":"02:35:19","url":"/play/19025578.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDRjMzg5MGViZmM4NWY1Y2M5NTcyODk4ZTg2NDNkNmQuanBn.cache","vod_id":19056452,"title":"UMD-933 Trong kỳ nghỉ, chị gái của hàng xóm tôi đến nhà tôi với vẻ mặt phấn khích, tay cầm một dương vật đang cương cứng!","lastmod":"2025-03-19","duration":"02:02:07","url":"/play/19056452.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvM2JhYWFiOTU3MWE4NmI3M2RkN2RkNzE0Mzg5OWYxZGUuanBn.cache","vod_id":19117080,"title":"DASS-546-C Tôi đáng lẽ phải quan hệ tình dục với một người chị gái lớn tuổi, ngực nở nang và rất năng động trong chuyện chăn gối. Nếu tôi ép buộc, chị ấy chắc chắn sẽ đồng ý, nhưng những người bạn xấu của tôi luôn can thiệp, và tôi không thể làm được.","lastmod":"2026-03-01","duration":"01:55:58","url":"/play/19117080.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmU2ZTQyMGMxN2M2ODljNTAzYTAzZjdjYmJlMDBmNzYuanBn.cache","vod_id":18960356,"title":"Người chị gái dâm đãng quyến rũ em trai mình, dụ dỗ cậu quan hệ tình dục và nuốt tinh dịch của cậu.","lastmod":"2025-03-19","duration":"33:36","url":"/play/18960356.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDMyNzIxMTVmODVkNzA0ZmM4ZDZjYjgzNDlmZmVkZmIuanBn.cache","vod_id":19020090,"title":"Yui Hatano - Khi em gái cô (một thành viên của câu lạc bộ bơi lội) nhìn thấy cô trong bộ đồ bơi thi đấu, anh trai cô đã cương cứng và lén đưa cho cô thuốc kích dục, khiến cơ thể cô trở nên cực kỳ nhạy cảm! Bất chấp sự phản đối của cô, anh ta không ngừng thúc mạnh vào sâu bên trong tử cung của cô, buộc cô phải ưỡn lưng và đạt đến cực khoái chết người! 2","lastmod":"2025-03-19","duration":"02:10:02","url":"/play/19020090.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTk0ZWI4MjM2OWJlYWYxYmZlMWEzNzk1MTZjMDc4NGMuanBn.cache","vod_id":19037422,"title":"Jelly Media - Em Gái Tôi Không Thể Dâm đãng Đến Thế 2 - Kobayashi An","lastmod":"2025-03-19","duration":"26:10","url":"/play/19037422.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWE5NTE5YzU3MTcxZmIwYThhMzE1MTYxMWY3MDQzNDQuanBn.cache","vod_id":19021093,"title":"MOGI-037-C Hoa hướng dương: Một chuyến đi suối nước nóng kỳ quặc kéo dài hai ngày một đêm. Một trải nghiệm hồi hộp và căng thẳng, không biết khi nào mình sẽ bị phát hiện!","lastmod":"2025-03-19","duration":"02:24:04","url":"/play/19021093.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzc0OWU1ODE2ZWFjNDM5MDBjOWQzZGI4NzM3M2Q1NmEuanBn.cache","vod_id":18963383,"title":"ABP-772 Chị gái tôi, Maria Ian và tôi đang sống một cuộc sống quyến rũ.","lastmod":"2025-03-19","duration":"01:51:31","url":"/play/18963383.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDg0NTIzNDc0YmIwMzBhZjU2MTZhZjE0NzdmMWIxMWMuanBn.cache","vod_id":19052844,"title":"Ghi lại một ngày tuyệt đẹp: Người chị gái nhẹ nhàng vuốt ve vùng kín màu hồng của em gái mình.","lastmod":"2025-03-19","duration":"09:57","url":"/play/19052844.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2VhMTA2OWNmNGE2OWRmNDUxMDAzNTRhY2Y4NjkwYWQuanBn.cache","vod_id":19006825,"title":"Bộ truyện thống trị ngôn ngữ của cô em gái gợi cảm Helian","lastmod":"2025-03-19","duration":"06:51","url":"/play/19006825.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZThlYTY0ZDUyYjE2ZGU2ZjliZDllZGYyZTE5N2E0NTEuanBn.cache","vod_id":19112925,"title":"Từ người yêu thành nô lệ tình dục | Kana Momono IPZZ-048","lastmod":"2026-02-03","duration":"10:16","url":"/play/19112925.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTM0NDc4YmJmZjZiODBmYjA3ZTEyM2ViOWUxZmIxZDAuanBn.cache","vod_id":18933167,"title":"Video riêng tư của cô gái trẻ","lastmod":"2025-03-19","duration":"01:29","url":"/play/18933167.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzNiNjMzMmI4ZjFjOTQyOGU5MGUwM2FhNDVkYjQyZDIuanBn.cache","vod_id":18958281,"title":"Cảm giác được một cô gái xinh đẹp và dễ thương quan hệ tình dục bằng miệng sẽ như thế nào?","lastmod":"2025-03-19","duration":"01:24","url":"/play/18958281.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDE3N2JmZDdhMzk5ZDcwZmIwNWEyODA2M2NhNWU0YTUuanBn.cache","vod_id":18956351,"title":"Tư thế này là tốt nhất để quay video.","lastmod":"2025-03-19","duration":"02:19","url":"/play/18956351.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjQvMGE1NTZhNDI0NWFlMTFhNDZmZjE3MTIzYWZmMDUwNGMuanBn.cache","vod_id":19079994,"title":"Bình luận viên Fruit Pie đã bị quyến rũ bởi bộ ngực đồ sộ của người phụ nữ cỡ H ở phòng bên cạnh và trở nên nghiện dục vọng.","lastmod":"2025-04-24","duration":"11:19","url":"/play/19079994.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTkvNjRlNzA3NWZiNTNkMjVjMWYwMDBkZjlkNmNkNDJjODcuanBn.cache","vod_id":19101726,"title":"Baidu Cloud đã rò rỉ những bức ảnh và video nhạy cảm của Wang Sujie, một người phụ nữ bề ngoài có vẻ ngây thơ nhưng thực chất là đoan trang với vòng một và vòng ba đầy đặn, đang tham gia vào các hoạt động tình dục.","lastmod":"2025-10-18","duration":"26:10","url":"/play/19101726.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjAvYjNiOTUwMjllOWYzOWE5MDk2ZjUxZDZlMWI2NTBjNTUuanBn.cache","vod_id":19127650,"title":"Cô gái cosplay 2B tự thỏa mãn bằng đạo cụ.","lastmod":"2026-06-19","duration":"07:43","url":"/play/19127650.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDJjYWZjZjVhY2JkZDBkZDQzNmY4NDMzYWJhNjgwNmUuanBn.cache","vod_id":19010844,"title":"CHC-002 Một video sex trần trụi, thân mật, ngập tràn mùi dịch tiết âm đạo - Aya, 27 tuổi","lastmod":"2025-03-19","duration":"01:31:13","url":"/play/19010844.html"}]},
videoTitle: 'BAB-185 Một video ghi lại cảnh tôi ngượng ngùng kể với chị gái và anh rể về việc chị gái tôi từng là nô lệ tình dục - Kitamura Kaito',
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=/`;
}
};
}