Vụ cưỡng hiếp thực sự của hai nam sinh cùng lớp đã mời một nữ sinh đến phòng chơi mạt chược_chúng đã cưỡng hiếp cô ấy một cách dã man_quần áo bị xé nát","lastmod":"2026-07-11","duration":"22:58","url":"/play/19161484.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTZlMGMxZTFhZTZmOTZhOWNhZmIwZmM5MDY0MDI2YTUuanBn.cache","vod_id":18976634,"title":"[Phụ đề tiếng Trung] JUQ-295 Ngoại tình bán thời gian: Làm thêm giờ sau giờ làm để huấn luyện và thuần phục những người phụ nữ đã kết hôn bị kìm nén về mặt tình dục. (Được thuần phục bởi Kaho Tamaki)","lastmod":"2025-12-14","duration":"02:18:08","url":"/play/18976634.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZGQ3NDg4NzViZmE0NDgwMWZiNjA5Mjc2NmU3YjBjYmIuanBn.cache","vod_id":19155345,"title":"NTR tràn ngập testosterone: Sau khi mùi hôi khó chịu của ông chủ biến mất, nước hoa đã làm cho bộ phận sinh dục của ông ta ẩm ướt và mang lại cho ông ta một mùi hương nam tính. DASS-550-C","lastmod":"2026-04-27","duration":"01:59:59","url":"/play/19155345.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MjkvNTZhNWQ4ZDZlY2YxNDQyMmEwZWI3YjQ0ZjQ3ZWI1OGYuanBn.cache","vod_id":19035686,"title":"HOMA137 (Câu chuyện có thật): Ông chủ mới cưới của tôi đi công tác xa, và tôi đã quan hệ tình dục với người vợ cô đơn của ông ấy, người có làn da trắng hồng và vòng ba đầy đặn, và khiến cô ấy có thai hết lần này đến lần khác.","lastmod":"2025-05-29","duration":"02:19:22","url":"/play/19035686.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTRhMGZiMDkwZGE4MzkzNWQyYmU0YmNlNjRjYjBkZjAuanBn.cache","vod_id":18994110,"title":"Một người có tầm ảnh hưởng lớn trên TikTok bắt đầu kinh doanh riêng như một công việc làm thêm.","lastmod":"2025-03-23","duration":"43:41","url":"/play/18994110.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWEzZTg3ZTZjNDhlNGMwYzZkMDg2YzJmMjA1YmI0MGYuanBn.cache","vod_id":18983231,"title":"[Không kiểm duyệt] HMN-356 Một buổi hẹn hò với một người đàn ông lớn tuổi mặc yukata và đồng phục. Ông ấy là một người đàn ông hào nhoáng hay một người bình thường? Bạn thích kiểu nào hơn? Các chú rất nghiêm túc.","lastmod":"2025-03-23","duration":"01:57:57","url":"/play/18983231.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjhiNzU5MjkxZWY0NWZhNWNjMGFjYmI0MGU3MjZhZGMuanBn.cache","vod_id":18966606,"title":"SVDVD-942 Thật đáng xấu hổ! Lén lút tấn công một cô gái nghiệp dư bằng máy rung cùng bạn trai của tôi! 22. Một studio gương ma thuật đặc biệt được thiết lập trong một quán rượu bình dân.","lastmod":"2025-12-14","duration":"04:07:06","url":"/play/18966606.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDUwNDVlYjZjNjJhNGVkYmEyYmY5OGUwNWFiMWI2Y2MuanBn.cache","vod_id":18980515,"title":"WANZ-721 Góc nhìn toàn cảnh hậu môn, Không mặc đồ lót, Công việc giúp việc bán thời gian, Tsubomi","lastmod":"2025-12-14","duration":"02:47:37","url":"/play/18980515.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDQ5ZThiYWIwZTNlMTc3OGViMTVkMWNkNDJlNjZmZGEuanBn.cache","vod_id":18939134,"title":"XRW-773 Thuốc kích dục mạnh dành cho nữ, gây xuất tinh, kích thích tình dục, Ryuka Inaba","lastmod":"2025-12-14","duration":"02:42:32","url":"/play/18939134.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWY4MzM4MWU2OTExMmNlMWVlYjRkYThiOWMyZmQ1ZDcuanBn.cache","vod_id":18955007,"title":"[Phụ đề tiếng Trung] NACR-596 Tôi thích nuốt tinh dịch! Một cô gái lẳng lơ tự do! Mayu Horizawa","lastmod":"2025-12-14","duration":"02:05:24","url":"/play/18955007.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzBhNjJkMzdhZmY4MzZmZTZkYWU5MDNjYWZkNTRmY2UuanBn.cache","vod_id":18986208,"title":"[Phụ đề tiếng Trung] MIFD-251 Người mới \"Xin lỗi vì xuất tinh không được phép\" - Một cô gái nhạy cảm bị ám ảnh bởi tình dục, trải qua nhiều lần cực khoái thầm lặng. Phim người lớn đầu tay - Yua Omori","lastmod":"2025-03-23","duration":"02:26:05","url":"/play/18986208.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9pYy4xNTUyNTAyMTQudG9wLzIwMjYwMjIwL1RmNFV4amRxLzEuanBn.cache","vod_id":19144567,"title":"Cô gái 19 tuổi điều hành một cửa hàng bán cơm hộp giao tận nhà bị những người lao động chân tay biến thành búp bê tình dục bằng cách sử dụng thuốc gây mê. Anh trai ruột đáng tin cậy của cô cũng là nạn nhân của sự lạm dụng này. (START-431)","lastmod":"2026-02-21","duration":"02:14:25","url":"/play/19144567.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2Q0OTYwNzMyNGU1YzFkYTJhMjE3NTIyYzQyNmE5MGQuanBn.cache","vod_id":18939253,"title":"[Lolita Hồng Ngọt Ngào Nguyên Bản] Bản ghi âm chân thực ở đẳng cấp nữ thần, với môi âm hộ màu hồng và trắng mịn. Âm hộ nhỏ, tròn điển hình. Rất được khuyến khích cho các nhà sưu tập.","lastmod":"2025-12-14","duration":"00:11:37","url":"/play/18939253.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODJkNzNmOTI2NmFkMjdlMzM1MjcyYjY0Zjg4NTI3OGQuanBn.cache","vod_id":18987908,"title":"SY-189 Núm vú hồng…Con gái thật tuyệt vời. Cô giáo Kirishima Leona, 22 tuổi, cao 148cm…(Nghiệp dư, phòng bốn chiếu rưỡi, xuất tinh không che)","lastmod":"2025-03-23","duration":"02:24:34","url":"/play/18987908.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDIzNTgxOWFmMGMyMmMxNjdjYTJhMGI3Nzg2MDM2NDQuanBn.cache","vod_id":19025360,"title":"Ảnh tự sướng của một nữ nhân viên bán thời gian xinh đẹp, ngực đầy đặn ở Thâm Quyến đã bị rò rỉ trên mạng.","lastmod":"2025-03-24","duration":"30:44","url":"/play/19025360.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9pYy4xNTUyNTAyMTQudG9wLzIwMjYwMjIxLzJ0M1ZFRG9yLzEuanBn.cache","vod_id":19145010,"title":"Li Ge, một nữ sinh bán thời gian 18 tuổi, bị bắt cóc và bị cưỡng hiếp theo nhiều cách khác nhau.","lastmod":"2026-02-23","duration":"54:42","url":"/play/19145010.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2RkMGExNjhhNTU5OGE1N2I3ZWFkOTFiNjk5NjBkZTIuanBn.cache","vod_id":18978217,"title":"300MIUM-030 Tin đồn được xác nhận! \"Liệu có thể quan hệ tình dục với một cô gái thôn quê dễ thương?\" Tập 2: Mặt tối của ngành giải trí! Người đẹp mặt trẻ con ngất xỉu vì đau đớn","lastmod":"2025-03-23","duration":"01:09:21","url":"/play/18978217.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvY2FjNzQyYzIzMzYxYmY3YzhmYjk2Y2UwMzk3ODAzODIuanBn.cache","vod_id":19151898,"title":"Tôi là một giáo viên bị tước bằng. Bị quyến rũ bởi vẻ đẹp của một nữ giáo viên xinh xắn, kết thúc hành trình của một người đàn ông qua những lần quan hệ tình dục không an toàn liên tiếp [Reverse Self-Shot Sex Leak] Natural Little NSODN-014","lastmod":"2026-04-05","duration":"01:59:25","url":"/play/19151898.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2MyYTNkMzE1YTQ4MmJjOTRkNTM0Y2JmYTEwNmY2MmYuanBn.cache","vod_id":19018731,"title":"HEYZO2119 Một cô gái nghiệp dư đạt cực khoái thông qua trò chơi vẽ graffiti.","lastmod":"2025-03-24","duration":"58:44","url":"/play/19018731.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTk1OGM0YjY4ZmMxN2YzYjNjZDhhZTQ2YjE2OWRmYmEuanBn.cache","vod_id":18968373,"title":"[Phụ đề tiếng Trung] YMDD-313 3 PM Bà nội trợ quyến rũ - Niềm đam mê thầm kín được giải phóng bởi một trinh nữ Bà nội trợ quyến rũ - Hikari Hime","lastmod":"2025-12-14","duration":"02:13:47","url":"/play/18968373.html"}]},
videoTitle: 'POKQ-010 Em yêu ông, ông già! Cô gái Lolita và cô gái làm thêm bí mật, đời sống tình dục thực sự của Real J●, 2 cô gái, 10 lần xuất tinh',
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=/`;
}
};
}