Là quản lý của một nhà hàng gia đình, tôi đã bị quyến rũ bởi vẻ đẹp dâm đãng của một cô gái làm việc nhỏ bé và trở nên nghiện quan hệ tình dục không an toàn... DVAJ-671-C","lastmod":"2026-07-11","duration":"02:09:47","url":"/play/19165711.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzk5YzY1N2U0NmExYzNjYzkxNzgwM2EzNTJjY2E2YjIuanBn.cache","vod_id":19022323,"title":"BF478 Phụ đề tiếng Trung Phiên bản đầy đủ Cảnh xuất tinh chủ quan Người hướng dẫn Sasaki Yuki.","lastmod":"2025-03-24","duration":"01:59:12","url":"/play/19022323.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTQ5ZWI0YWY4ZGU0OGEzMzUzMTkyNzMzYTIxNTJhMjMuanBn.cache","vod_id":18973857,"title":"[Phụ đề tiếng Trung] HMN-363 Cựu quản lý đội bóng chày, nổi tiếng ở các trường khác, trải nghiệm lần xuất tinh tự nhiên đầu tiên với Mai Arisu","lastmod":"2025-03-23","duration":"01:58:13","url":"/play/18973857.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvN2Q3OTFkNjdkODJlZGFhNmQ4NjZhMzViMjU5OGFiMGYuanBn.cache","vod_id":19142087,"title":"\"Ta sẽ khiến ngươi yếu đuối với nước bọt của ta\" - Hãy đắm chìm trong nụ hôn kiểu Pháp đầy khoái lạc của nữ thần! Nước bọt dính nhớp nháp khắp cơ thể, nàng liên tục xuất tinh vào bên trong. MIAB-560 hiếm có nhất.","lastmod":"2026-02-07","duration":"01:58:27","url":"/play/19142087.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZDdiOGI4NjIyMmFkZDBiOGY3NzA4MDJiMTE5ZjVmZjMuanBn.cache","vod_id":19135897,"title":"Hai chị em như trong mơ, lần đầu tiên bước chân vào ngành công nghiệp giải trí người lớn - Phần 3.","lastmod":"2025-12-30","duration":"01:03:08","url":"/play/19135897.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjEvYTQ4MDY5OThkN2IxYWJmNTEyMjVlY2ExZTcxZTRlNWEuanBn.cache","vod_id":19053551,"title":"Mối tình đầu của cô đã bị cướp mất bởi tay ném bóng xuất sắc nhất của đội bóng chày... Anh ta nói rằng anh ta thích phẩm chất bên trong của cô, chứ không phải vẻ ngoài, và cô đã bị anh ta xâm hại và xuất tinh vào bên trong bởi dương vật phi thường của anh ta!! Yumi Nijimura HMN651","lastmod":"2025-09-20","duration":"01:55:39","url":"/play/19053551.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNzFlMzdkODc1MTY0MTI4MGQyNWRmYzViMDgzMGM1MDkuanBn.cache","vod_id":19162687,"title":"Bạn có muốn làm thú cưng của tôi không? Hãy để cô ấy xuất tinh hết lần này đến lần khác cho đến khi cô ấy mệt. Meiyin SOD","lastmod":"2026-07-11","duration":"02:27:40","url":"/play/19162687.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTBiY2IzODIyNmZkNGQyYzFiNDNmY2M0YTU3ZjAzZGIuanBn.cache","vod_id":19150762,"title":"Nubiles-Porn Bạn thân của em gái tôi muốn quan hệ tình dục qua đường hậu môn và thâm nhập [NubilesPorn]","lastmod":"2026-03-29","duration":"08:50","url":"/play/19150762.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjhiZGIxNzAxZTYxNDhjZWJmY2U4NTE2YmI2NDA5MmQuanBn.cache","vod_id":19006796,"title":"FINH-027 Săn bắn nghiệp dư: Một người vợ xinh đẹp liên tục đạt cực khoái và được một diễn viên phim người lớn có kỹ năng tuyệt vời thâm nhập. Tập 4 Nao","lastmod":"2025-03-24","duration":"02:28:33","url":"/play/19006796.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTJkMzYwNzc3ODRmYjE4OWMwOGIwMzRjNzU4MzBlMWIuanBn.cache","vod_id":18968445,"title":"MIGD-751 Khi tôi gọi điện cho nữ nhân viên mát-xa ở khách sạn để yêu cầu các dịch vụ không liên quan đến tình dục, tôi bất ngờ gặp phải cô em gái tinh nghịch của bạn tôi! Tôi chớp lấy cơ hội và nói: \"Tôi sẽ mách anh trai tôi!\"","lastmod":"2025-12-14","duration":"01:58:36","url":"/play/18968445.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODk2NzNkYmQ5ZDA2NDVlZmQ4YzYzMjAwMGEwNTEyYmQuanBn.cache","vod_id":18979025,"title":"Hai chị em gái trẻ mặc quần tất đen, để lộ mặt, đang cùng nhau phát trực tiếp. Một trong hai người, đang trong kỳ kinh nguyệt, liếm ngực người kia, xoa ngực, nghịch vùng kín, dùng đồ chơi rung hình quả trứng và tạo hình trái tim bằng ngực – tất cả đều rất quyến rũ.","lastmod":"2025-12-14","duration":"03:00:03","url":"/play/18979025.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZmI2NjVkNTEzYjBmZGFiOGI0NTI2MTllZTM0N2E2NzIuanBn.cache","vod_id":19164200,"title":"Một cặp đôi sinh viên đại học đặt phòng khách sạn, cô gái thay đồ và mặc quần tất đen, bạn trai xé toạc quần tất, không dùng bao cao su, xuất tinh bên trong","lastmod":"2026-07-11","duration":"53:45","url":"/play/19164200.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDIyMjBmNmJlYjIyNWNiMTY0NzQ4Y2UwYmEwMDA1ZjcuanBn.cache","vod_id":19017690,"title":"hmn263 luôn phơi bày ngực và bộ phận sinh dục, luôn tham gia vào các hoạt động tình dục nguyên thủy và tự do, tục lệ xuất tinh ngược kiểu thỏ, Okui Kaede.","lastmod":"2025-03-24","duration":"01:57:19","url":"/play/19017690.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTJjYzY0YjcwMTg3NWQ5Y2NlMjVmMTM2NGE1ZjFiODguanBn.cache","vod_id":19005116,"title":"[Những người đồng tính nữ châu Âu và Mỹ] Những chị em đồng tính nữ hàng đầu tham gia vào nhiều hình thức liếm láp lẫn nhau.","lastmod":"2025-03-23","duration":"27:57","url":"/play/19005116.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTYyZDUwNDczNmM3ODYzMGRlNDUwMmNhODE5ZDI1NDQuanBn.cache","vod_id":18987714,"title":"[Không kiểm duyệt] VENX-273 Con trai tôi là một con thú ăn thịt đầy dục vọng trần tục. Bà mẹ Chisato Shoda trở thành một gái điếm thực thụ thông qua việc bị bóp cổ, quan hệ tình dục bằng miệng và sử dụng máy rung cố định.","lastmod":"2025-03-23","duration":"01:37:11","url":"/play/18987714.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGM4NTZkOTU5ZDUyMzJlZTc3MzE4NDBiZTdmZGI2MGQuanBn.cache","vod_id":18951129,"title":"IPX-455 Muốn bạn phơi bày đồ lót của mình như thể đó là rác rưởi~ 5 kịch bản như trong mơ về việc bị khinh miệt trong khi bị ép xuất tinh~ Nishimiya Yume","lastmod":"2025-03-22","duration":"02:26:04","url":"/play/18951129.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDA3NWI0MzQ0NzU4Zjg1NGRhZTUxMDI0ZDQ0YmZlOGYuanBn.cache","vod_id":19017862,"title":"dldss123 Xuất tinh không giới hạn Hodaka Yuuka nhìn chằm chằm và đòi được quan hệ tình dục hết lần này đến lần khác.","lastmod":"2025-03-24","duration":"02:00:53","url":"/play/19017862.html"}]},
videoTitle: 'Nubiles-Porn Bạn thân của em gái tôi muốn quan hệ tình dục qua đường hậu môn và thâm nhập [NubilesPorn]',
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=/`;
}
};
}