Chú tôi ngủ với một nữ đồng nghiệp xinh đẹp trong khách sạn, cô ấy thay đồ thành đồng phục tiếp viên hàng không và họ quan hệ tình dục ở nhiều tư thế khác nhau.","lastmod":"2026-07-11","duration":"","url":"/play/19206850.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MzAvMDFhYjMzNTc5MzFjM2U5MzVkYzhiNTIxOTIyMmY2NmEuanBn.cache","vod_id":19151763,"title":"Đồng tính nữ, yuri, loli hổ trắng, 69, liếm và rên rỉ lẫn nhau","lastmod":"2025-08-29","duration":"0:11:26","url":"/play/19151763.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjYvMTVhYzVjZTBkYTE2ZjFmYTQ2MDQ2YzdhYTAzNDkwNDguanBn.cache","vod_id":19156417,"title":"Tại buổi họp lớp, tôi gặp một người bạn cùng lớp sắp ly hôn. Cô ấy đã cố gắng thuyết phục tôi, một người sắp kết hôn, để cùng nhau ôn lại kỷ niệm xưa. (Nagasaki Yukine ADN647)","lastmod":"2025-09-25","duration":"2:14:04","url":"/play/19156417.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMWExMGUyNWQ5NGI5OTU2NTcxNTIwYWEzMmNhZTQ2YzIuanBn.cache","vod_id":19122273,"title":"Phiên bản đầy đủ, không cắt ghép đầu tiên của cô chị gái xinh đẹp và quyến rũ đã được phát hành.","lastmod":"2025-03-26","duration":"0:59:12","url":"/play/19122273.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjcvYjk0MWU1MTI1YTEyZjIzM2NiZDQ3ZjA4MTNlZDBmZmUuanBn.cache","vod_id":19161262,"title":"Một cô bé mẫu giáo ngây thơ, ngọt ngào, tràn đầy năng lượng, bị một ông chú béo ú cưỡng hiếp dã man.","lastmod":"2025-10-26","duration":"1:29:36","url":"/play/19161262.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTQyNTg1NmFiODIxZGI0YmIzMzQzNGM0MTRiN2IzNDAuanBn.cache","vod_id":19050708,"title":"BBAN-264 Ngôi Nhà Của Người Hầu ~Những Người Bạn Đồng Hành Nữ Của Chủ Nhân và Người Hầu~","lastmod":"2025-03-26","duration":"2:59:13","url":"/play/19050708.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTQwZjgwZWNiMThkNTgzODljOWQzMmQ1YmY0YjA1YzEuanBn.cache","vod_id":19197181,"title":"Năm 2005, He Yiting, một cô gái trong sáng và ngây thơ đến từ Đại học Công nghệ Ứng dụng Tây Vân Nam, đã bị lộ video quan hệ tình dục tập thể, trong đó cô ấy nói rằng mình muốn tham gia vào hoạt động này.","lastmod":"2026-05-06","duration":"0:00:44","url":"/play/19197181.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvN2ZlOTM4NzQ5NDIxYzY3ZTQwZGQwMThkY2JjMzQ3OGMuanBn.cache","vod_id":19185516,"title":"Thông tin độc quyền: Cuối cùng tôi cũng đã có được \"món quà\" là cô nàng xinh đẹp mà tôi thầm mến suốt bao năm! Quan hệ tình dục với bạn học cũ thật sự vô cùng thỏa mãn!","lastmod":"2026-03-10","duration":"0:14:38","url":"/play/19185516.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDJhNDJiODczODE5MjFiYjMxNzQ5YjM3OWVmZTVhMDkuanBn.cache","vod_id":19173511,"title":"Huang Xinrou, một sinh viên đại học 21 tuổi, với ngoại hình khác hẳn so với thường ngày, đã bị một chuyên gia môi giới mại dâm tung video sex lên mạng. Video cho thấy một cô gái xinh đẹp có vẻ ngoài ngây thơ đang quỳ xuống và liếm dương vật trong bộ trang phục hầu gái gợi cảm và ưỡn mông.","lastmod":"2026-01-12","duration":"0:08:38","url":"/play/19173511.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvM2UwYWM3MjFkMThmYmM2YTdmMDM3ZmE2NmQzMTYzYTYuanBn.cache","vod_id":19193198,"title":"Một nữ sinh viên đại học 20 tuổi, cô gái nhà bên, đã quyến rũ một người đàn ông lớn tuổi hơn vào chứng cuồng chân và xuất tinh lên tất của ông ta. Cô ấy ngây thơ và dễ thương.","lastmod":"2026-04-17","duration":"0:10:51","url":"/play/19193198.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYWNlOTljYjkxZmNmZmFhNmJhZGQwMzQwYzk5MjAzZTYuanBn.cache","vod_id":19113964,"title":"Một cô gái trong sáng và ngây thơ trong bộ trang phục hầu gái với tất chân, đôi chân đẹp và thân hình tuyệt vời—thật tuyệt vời!","lastmod":"2025-03-26","duration":"0:15:12","url":"/play/19113964.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjUxMWIyNDAyYmEwNjg0MjY1ZmI1MDYwYzE4MzQ3NTQuanBn.cache","vod_id":19189456,"title":"Twitter đã rò rỉ những bức ảnh chụp các cặp đôi đồng tính nữ nổi tiếng đang hôn nhau, nhưng lại thiếu dương vật ở giữa, khiến người xem \"cực kỳ phấn khích\".","lastmod":"2026-03-29","duration":"0:07:08","url":"/play/19189456.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTgvOWE0ZDEyMmUwMTQ0ZmJjZTAwOGQzZGMzMTk0MmU0YzMuanBn.cache","vod_id":19139766,"title":"Cô sinh viên đại học được thuê làm việc bán thời gian có vẻ ngoài trong sáng, cao ráo và rên rỉ không ngừng suốt cuộc gặp gỡ.","lastmod":"2025-06-18","duration":"0:24:35","url":"/play/19139766.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmNjZGFiNzYyYzkyYTdhY2Y0NWYyYjcyOWJlMTNkN2QuanBn.cache","vod_id":19038050,"title":"91CM-204 Đánh thuốc mê và cưỡng hiếp một nữ sinh vô tội - Bai Xue","lastmod":"2025-03-26","duration":"0:43:58","url":"/play/19038050.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOWFmYmYwOWM0MDE0MWY2MjkwY2Y2MzRlZTVkNjc5OGUuanBn.cache","vod_id":19188372,"title":"Một bức ảnh tự sướng bị rò rỉ cho thấy một cô gái trong sáng và ngây thơ đang quan hệ tình dục; kỹ năng oral sex của cô ấy khá ấn tượng.","lastmod":"2026-03-23","duration":"0:08:08","url":"/play/19188372.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZWUzMjNiNDdiMmVkMWNjNTI2OTFhYjAyNDg5NDE1NjUuanBn.cache","vod_id":19192803,"title":"Một cô gái vô cùng trong sáng và ngây thơ, vẫn còn đang đi học, đã phải bán dâm để kiếm tiền đóng học phí và trang trải sinh hoạt, đồng thời theo đuổi sự nghiệp viết văn của mình.","lastmod":"2026-04-15","duration":"1:03:28","url":"/play/19192803.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjI1YmVlZWM4MjRmNjE3YjQxZDRhMjRlODdmNGUzNzQuanBn.cache","vod_id":19187732,"title":"Sự thật gây sốc: Một nữ sinh trung học ở Quảng Tây, học sinh giỏi nhất trường, đã bị bạn cùng lớp tấn công tình dục liên tiếp - sự tương phản cực độ giữa hành vi của nữ sinh đeo kính này và các bạn cùng lớp đã khiến cô ta giải tỏa căng thẳng bằng cách tấn công tình dục nạn nhân.","lastmod":"2026-03-20","duration":"0:22:15","url":"/play/19187732.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMTE2NWUwNjc3Y2VkN2IyZjkwNTBmZWM1Yjk0ZGNlMzEuanBn.cache","vod_id":19200949,"title":"Một nữ sinh trung học vô cùng xinh xắn, ngây thơ đã bị anh trai trừng phạt vì không hoàn thành bài tập về nhà. Anh ta đã cưỡng hiếp cô bé một cách dã man mà không dùng bao cao su, khiến cô bé la hét.","lastmod":"2026-05-24","duration":"0:05:16","url":"/play/19200949.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTc0YzZlZjkzMThiMzE4YzQ5MTYxOTg2MWQ1OTVkODEuanBn.cache","vod_id":19112699,"title":"MEYD-519: Nhật ký qua đêm khác thường của một bà mẹ đơn thân với bạn cùng lớp của con trai mình đã diễn ra suốt 10 năm. (Azuma Rin 1)","lastmod":"2025-03-26","duration":"1:58:21","url":"/play/19112699.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTAvNWYwZTNhN2U4OGI4ZTg3MzZhZWM1ODNkNWU4MjVjNzguanBn.cache","vod_id":19207367,"title":"Một cặp sinh viên đại học đang quan hệ tình dục ngoài khuôn viên trường trong phòng khách sạn. Cô gái có lông mu rậm rạp và đeo kính gợi cảm có một người bạn trai liếm cô trước khi đưa vào, như thể cô ấy vừa mới mất trinh; hơi đau một chút khi anh ta đưa vào.Một cặp sinh viên đại học đang quan hệ tình dục ngoài khuôn viên trường trong phòng khách sạn.","lastmod":"2026-07-11","duration":"","url":"/play/19207367.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvNDU1NGM0ZmI5MWI3ZGJkODhhOWM5NThjMjQ3MmFmMDUuanBn.cache","vod_id":19166747,"title":"Lần quan hệ tình dục đồng tính nữ đầu tiên của Hayama Sayuri là với Kanno Shizuka (BF-738).","lastmod":"2025-12-13","duration":"2:19:23","url":"/play/19166747.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNmUyM2MwYTY2N2EzOWIzNDg1OGVhM2UxMzBjYTI0MDAuanBn.cache","vod_id":19192314,"title":"Một cô gái trẻ trung, xinh xắn với mái tóc tết hai bím, mặc quần tất đen và áo hai dây, đang dùng chân kích thích bạn trai; vòng ba của cô ấy thật hoàn hảo.","lastmod":"2026-04-12","duration":"1:30:04","url":"/play/19192314.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNThkYmUwZWQ1NzdjZTg0MTQyMGU3YjQzM2ZjMGU0MzUuanBn.cache","vod_id":19193854,"title":"Tôi đã trả 3000 để gặp một cô gái sinh viên trông rất trong sáng. Cô ấy mới vào nghề và không biết nhiều, nhưng cô ấy rất hợp tác và thử nhiều tư thế khác nhau, bao gồm cả kích thích bằng tay.","lastmod":"2026-04-19","duration":"0:27:15","url":"/play/19193854.html"}]},
videoTitle: '91CM-204 Đánh thuốc mê và cưỡng hiếp một nữ sinh vô tội - Bai Xue',
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=/`;
}
};
}