Chuyến trăng mật ở Mỹ của Wu Mengmeng_San Francisco, Con điếm tục tĩu, Phơi bày đáng xấu hổ, Xuất tinh không an toàn","lastmod":"2026-07-11","duration":"25:35","url":"/play/19153785.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOGM5NGE2YmQxOTFmYmFlZmY3NzJiYzE2ZmNmOWZlMWYuanBn.cache","vod_id":19131518,"title":"Thông tin rò rỉ tiết lộ một sinh viên đại học và một cố vấn đang có quan hệ bất chính trong phòng khách sạn; cố vấn này được cho là đã dụ dỗ một cô gái trong khi chơi điện tử và nghe điện thoại.","lastmod":"2026-03-18","duration":"38:35","url":"/play/19131518.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjg4NGYwMWMwZDJhMTQ1NGI3MzVhMGJkNzRmMTI2ODAuanBn.cache","vod_id":19018907,"title":"Quan hệ tình dục không an toàn với gái mại dâm","lastmod":"2025-03-29","duration":"14:27","url":"/play/19018907.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWVhOGQ3YjViNDNmZDA2MWI1ZjViOWE5YThjODQ1YjQuanBn.cache","vod_id":19033850,"title":"Tôi đã nhìn thấy bạn cùng lớp quan hệ tình dục với bạn gái của cậu ấy trong ký túc xá trường!","lastmod":"2025-03-29","duration":"00:00:17","url":"/play/19033850.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzQ2OWZmZjdmYmFiODdmY2E3NWI2OTcyMDFmYmUzYzMuanBn.cache","vod_id":18959615,"title":"91. Thần Daige - Hắn ta cưỡng hiếp Lanlan, người mới cưới, trong một khách sạn, và cuối cùng xuất tinh vào trong cô ấy. Hãy nghe đoạn hội thoại.","lastmod":"2025-03-28","duration":"25:14","url":"/play/18959615.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDcyZGNlYTU0MmVmZWMzNTdjZjAwNTY2NTcyMDkzZjAuanBn.cache","vod_id":18979244,"title":"Quan hệ tình dục quyến rũ với một cô gái trẻ lẳng lơ","lastmod":"2025-03-28","duration":"01:35:53","url":"/play/18979244.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjYvOWU2YzBjOTNkZjA1NTJhMjhlZDI1MTViYjA2ZjNhYjYuanBn.cache","vod_id":19151764,"title":"Một nữ sinh trung học xinh đẹp tuyệt trần đã được một dương vật khổng lồ lấp đầy âm đạo - quan hệ tình dục bằng miệng, nuốt tinh dịch và xuất tinh bên trong.","lastmod":"2026-06-25","duration":"11:30","url":"/play/19151764.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGExMGEzZGU5NmNhNjU1N2JmZDkyYzJhNzYwMGIxODkuanBn.cache","vod_id":19001959,"title":"Niniko theo đuổi cực khoái tột đỉnh bằng cách đưa thuốc kích dục vào âm đạo nhạy cảm của mình. Âm hộ ngọt ngào của cô ấy đặc biệt ẩm ướt và nhạy cảm, và chiếc vớ hở đáy để lộ hoàn toàn dịch tiết dồi dào. Từ phía sau, dịch tiết gợi cảm trải dài và loang lổ.","lastmod":"2025-03-28","duration":"01:07:05","url":"/play/19001959.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZWZlZGIzMjczZmQyNzYyOThjNDRmMzZiNDllMjE5ZTkuanBn.cache","vod_id":19141584,"title":"Nhập vai cô gái xinh đẹp bị xâm hại tình dục qua đường hậu môn trong 4 giờ - Uehara Ai - TMA","lastmod":"2026-05-06","duration":"03:59:51","url":"/play/19141584.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYmYxNjI1YTBjMGMzOTU1Mjg5YWU5MWUxYzI1YjkxYjkuanBn.cache","vod_id":19117166,"title":"Cảnh quan hệ tình dục đồng thời với hai người đàn ông_Phần 1_Vẻ đẹp thuần khiết và ngọt ngào thời hậu thập niên 2000_Hai cô gái thay phiên nhau quan hệ trên ghế sofa_Âm đạo cực kỳ mềm mại với tinh dịch trắng chảy ra_Chàng trai hạnh phúc khiến mọi người ghen tị","lastmod":"2026-01-08","duration":"28:07","url":"/play/19117166.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNjRiNmEzMTdkOGM2MGM5YTQ0NGJlOTMxYmEyNWYyMzIuanBn.cache","vod_id":19136326,"title":"Cô bé đáng yêu này trông rất ngây thơ và quyến rũ, vậy mà lại bị một người chú độc ác cưỡng hiếp dã man trong một tư thế đặc biệt.","lastmod":"2026-04-11","duration":"06:09","url":"/play/19136326.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZGQxNjNiZjI1Y2NmNTc4MDZhNWUwNjNlZThhNDA2YTEuanBn.cache","vod_id":19143541,"title":"Ông Huang, người đang cực kỳ hưng phấn tối nay, đã sắp xếp gặp một cô gái mũm mĩm mặc áo khoác đen và tất đen. Ông ta bắt cô ta ngồi trên ghế sờ soạng rồi cưỡng hiếp cô ta từ phía sau một cách thô bạo.","lastmod":"2026-05-16","duration":"43:27","url":"/play/19143541.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTUvNTBlNDIzNzRkZTEzNjA2OGRkOGU0YjkzMTk4M2JiMjMuanBn.cache","vod_id":19155452,"title":"Quan hệ tình dục không dùng bao cao su số 20: Sau khi thỏa thuận riêng với một cô gái massage nổi tiếng có thân hình tuyệt vời, việc quan hệ tình dục không dùng bao cao su và xuất tinh vào bên trong cô ấy là hoàn toàn chấp nhận được. Peach First Star","lastmod":"2026-07-14","duration":"01:13:20","url":"/play/19155452.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTMvNTY4OWVkYmExYmFhMzYyZjRhMzE1MTA1YjViMjUxYTIuanBn.cache","vod_id":19073408,"title":"Chuẩn bị khăn giấy. Anna Bao'er, khách sạn, phòng trả tiền, không dùng bao cao su, xuất tinh bên trong, xịt khô - 2","lastmod":"2025-05-13","duration":"54:30","url":"/play/19073408.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzBiNzk1YjhlZWUzNDJlZmM5ZGQxMGI2OGQwZjcyNWIuanBn.cache","vod_id":19022922,"title":"Người mới: Một cô gái dễ thương, hay cười đến từ thành phố N, tỉnh Chiba, rất nổi tiếng ở các trường khác, nay đang ra mắt trong ngành công nghiệp phim người lớn.","lastmod":"2025-03-29","duration":"01:59:21","url":"/play/19022922.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9zYnp5dHBpbWc0LmNvbTozNTE5L3VwbG9hZC92b2QvMjAyNjAyMjEtMS9lYzdjM2Y3NzU4MWI5Y2M1ZjdlYTdmNmM4MGE3YWMzNS5qcGc=.cache","vod_id":19126100,"title":"Em gái của bạn tôi lúc nào cũng khoe thân mà không mặc áo ngực! Tôi muốn bóp những núm vú xinh xắn, cương cứng của cô ấy. (MIDA-383)","lastmod":"2026-02-21","duration":"02:50:09","url":"/play/19126100.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTJhZTcxMGEzYjMzY2U5YWVhNzAzZTk1ZjU5MDEyODkuanBn.cache","vod_id":19029708,"title":"Cô gái xinh đẹp Yuzu Cat đã bị tấn công dã man, đầu tiên bị xuất tinh vào chân rồi sau đó vào bên trong cơ thể, hai lần cùng một lúc.","lastmod":"2025-03-29","duration":"16:27","url":"/play/19029708.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvY2QyNjI0YmU2MTk5MDBkMmNlYmNkNjY0YmZjYTNjNTAuanBn.cache","vod_id":19127592,"title":"Xứ sở bong bóng kỳ diệu - Cô gái tắm bồn siêu xinh đẹp với vòng một cỡ H và xuất tinh không che chắn XVSR-839","lastmod":"2026-02-28","duration":"02:00:41","url":"/play/19127592.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTRmMTlkZWIzNTM4NGJkZTAxN2NiZGJlODBiNzIzMzcuanBn.cache","vod_id":19121595,"title":"Một cô vợ nghiệp dư nhận được một chiếc bao cao su tại nhà của một sinh viên đại học bình thường, nhưng cô ấy không hài lòng với điều đó và để anh ta xuất tinh vào trong cô ấy hai lần trong thời gian cô ấy ở đó. (HAWA-372)","lastmod":"2026-01-31","duration":"02:41:31","url":"/play/19121595.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDQwMzI4MmVkM2IyODQwNWE2ZTQ1OTY3MTEwYTE5NjQuanBn.cache","vod_id":18987996,"title":"Quan hệ tình dục với người giao hàng và không dùng bao cao su.","lastmod":"2025-03-28","duration":"01:53:26","url":"/play/18987996.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjE5ZmU1ZDkwYTM5N2U2NGZlZWJmMDIzMjk2NzUzNTcuanBn.cache","vod_id":19003959,"title":"Kế hoạch dâm dục của gia sư: Xuất tinh bên trong - Xiaomin'er 1","lastmod":"2025-03-28","duration":"22:28","url":"/play/19003959.html"}]},
videoTitle: 'Một cô gái xinh xắn bị nhân vật nam chính tấn công tình dục mà không dùng bao cao su, rồi hắn ta xuất tinh vào bên trong cô.',
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=/`;
}
};
}