Ghép mặt đỉnh cao! Lee Ji-eun quyến rũ như cô gái thỏ, ngực khủng, quan hệ tình dục hoang dã và xuất tinh bên trong","lastmod":"2026-07-11","duration":"","url":"/play/19244770.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDEwYjNjMjhiZTJhNDg5OWFlNjY3Mzg1NzM0YThkZjQuanBn.cache","vod_id":19121031,"title":"Một cô gái châu Á lẳng lơ bị một dương vật khổng lồ thọc sâu vào họng và xuất tinh vào miệng. Tinh dịch thậm chí còn trào ra từ mũi cô ta.","lastmod":"2025-03-29","duration":"22:54","url":"/play/19121031.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMTk3ZDBlNTRhMDZhZTc1MjQ3M2M3Mjc3NzExYTI4OWYuanBn.cache","vod_id":19238507,"title":"Vợ của người hàng xóm tôi thật dâm đãng! Cô ta đang lén lút ngoại tình với một người đàn ông khác sau lưng chồng!","lastmod":"2026-06-01","duration":"4:01:40","url":"/play/19238507.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMDg5ZWFlMDYyZmYyYzVkOWQ1NDZkMzcwMmJhZTg4ZjIuanBn.cache","vod_id":19235129,"title":"Một người phụ nữ trưởng thành ngực khủng nhìn chằm chằm vào dương vật! Cô ta tự thủ dâm bằng nước bọt, thực hiện quan hệ tình dục bằng miệng thô bạo, rồi sau đó thâm nhập mạnh mẽ và xuất tinh vào bên trong.","lastmod":"2026-05-16","duration":"3:59:43","url":"/play/19235129.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDI0ZmUyMjIxYmY4MDJiMDIwNGFmZmRjYTU1M2ZlYzYuanBn.cache","vod_id":19046152,"title":"MVSD-414 Ông lão, nhân vật nam chính, đã dễ dàng bị đánh bại bởi lần xuất tinh cuối cùng.","lastmod":"2025-03-28","duration":"","url":"/play/19046152.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMmE1M2IzZmYzNTAyNjgzNjc5ZTQyYThhZjhjZGYwZWMuanBn.cache","vod_id":19226743,"title":"KAAD-085 Người mẹ chồng trưởng thành quyến rũ bị con rể cưỡng hiếp dã man, bộ ngực đồ sộ của bà rung lên dữ dội khi hắn xuất tinh vào bên trong.","lastmod":"2026-04-05","duration":"1:39:20","url":"/play/19226743.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDU1NjJmNjI2MTgxYzYzMzVjNjI0NTZmOGJlOWRmOTEuanBn.cache","vod_id":19043292,"title":"Xue'er, với vẻ ngoài tưởng chừng ngây thơ nhưng lại vô cùng quyến rũ, đã hé lộ khuôn mặt của mình trong buổi phát trực tiếp, khoe thân hình mảnh mai trong bộ đồ lót và những tư thế gợi cảm. Cô sử dụng đạo cụ để kích thích vùng kín và chơi đùa với máy rung, tiếng rên rỉ của cô vang vọng khắp không gian – đừng bỏ lỡ màn trình diễn đầy kích thích này!","lastmod":"2025-03-28","duration":"00:52:33","url":"/play/19043292.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmVjMDQyYzVlOGY4NDE4Yjc1YWMyNGJiZTRkOGM0MWEuanBn.cache","vod_id":19072535,"title":"XRW-604 Màn quan hệ bằng miệng tàn bạo! Xuất tinh lên mặt! 4 giờ quay phim kích thích với tinh dịch bao phủ toàn bộ cơ thể","lastmod":"2025-03-28","duration":"02:06:31","url":"/play/19072535.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTU2Y2YzMTVhMjZhMTdjY2RhOWFkYzQ3NDA4Yzc0NDMuanBn.cache","vod_id":19222292,"title":"MIAKHALIFA - Bà mẹ kế gợi cảm Juliana Vega bị cưỡng hiếp dã man, Mia Khalifa ngực khủng và dâm đãng bị cưỡng hiếp không ngừng và xuất tinh vào bên trong.","lastmod":"2026-03-16","duration":"0:12:49","url":"/play/19222292.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvM2M1NWJmMDdkZmI4YjM5NzU3OTRhZmM3YjAwODQyOGYuanBn.cache","vod_id":19219873,"title":"JUR-517 Bà nội trợ ngực cỡ G \"Madonna Innocent\" sinh con: câu chuyện cuộc đời cô bị hành hạ dã man bằng máy rung điện giật cho đến khi xuất tinh và không kiểm soát được bàng quang.","lastmod":"2026-03-02","duration":"2:11:24","url":"/play/19219873.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjEvNDkzMWNmNGE2ZDkzMGIyNjFiNzZmYTRhODY1NWJmYmYuanBn.cache","vod_id":19190639,"title":"Một cô gái trẻ xinh đẹp đang phát trực tiếp, để lộ mặt và van xin được quan hệ tình dục, nuốt tinh dịch và đưa ra những lời lẽ tục tĩu! Một dương vật to đang đâm mạnh vào lỗ nhỏ nhắn của cô ấy, và mọi người đều tham gia vào việc quan hệ với cô ấy!","lastmod":"2025-08-20","duration":"14:16","url":"/play/19190639.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9mYW4ubGVmaGFvMjAyNTA5MjMudG9wLzIwMjYwMjE2L1hDYTF0ckYwLzEuanBn.cache","vod_id":19218503,"title":"Zhang Yuqi, huấn luyện viên yoga gợi cảm được hỗ trợ bởi trí tuệ nhân tạo, với vòng một đầy đặn, vòng ba săn chắc và thân hình ướt át, thực hiện các tư thế tình dục mãnh liệt với màn thâm nhập và xuất tinh dữ dội.","lastmod":"2026-02-19","duration":"0:19:23","url":"/play/19218503.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjIwYWQxNTljNmJjNDJjYzJhNTdkM2FiZTgwMGI5MjAuanBn.cache","vod_id":19226739,"title":"SCOP-897 Một cô gái ngốc nghếch đi khám phá tàn tích bị những người đàn ông vô gia cư cưỡng hiếp nhiều lần! Những người đàn ông vô gia cư cực kỳ dâm dục đã cưỡng hiếp cô không ngừng cho đến khi xuất tinh vào bên trong cô!","lastmod":"2026-04-05","duration":"1:34:29","url":"/play/19226739.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvMDZlMTg1OTU3NTYxNWRjNDc4NmQ2NDRhNjc3ZDJkNTIuanBn.cache","vod_id":19246091,"title":"Vụ cưỡng hiếp trong quán bar đêm khuya, nạn nhân mặc đồng phục JK bị xâm hại dã man đến mức xuất tinh.","lastmod":"2026-07-11","duration":"","url":"/play/19246091.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYWU0MThhMDJjYzFiYWIzYTRjOGY0NTQwMzY4YjFhNGQuanBn.cache","vod_id":19089637,"title":"FC2PPV 3200770 Một cậu bé 18 tuổi, sinh viên năm nhất tại một học viện âm nhạc. Thân hình mảnh mai, trắng trẻo và mềm mại của cậu ta đạt cực khoái hết lần này đến lần khác, xuất tinh một lượng lớn tinh dịch.","lastmod":"2025-03-29","duration":"02:36:54","url":"/play/19089637.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWZhODU5NWU1ODY5ZTE3ZWIzZmZlNzk2MTJkNmY4NmMuanBn.cache","vod_id":19119195,"title":"[Con điếm tóc đen] Cô gái JK xinh đẹp với cả ba lỗ đều mở, bị tổ tiên da đen của cô ta cưỡng hiếp không ngừng nghỉ mà không dùng bao cao su bằng dương vật khổng lồ. Âm đạo dâm đãng của cô ta ướt đẫm đến chảy nước, và cô ta liên tục tiểu tiện và phun trào dữ dội.","lastmod":"2025-03-29","duration":"26:58","url":"/play/19119195.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNjJmZWNjNDZmMDBkOTEyZmJjYWMwZWQ2ZWE1ODA4ZmUuanBn.cache","vod_id":19226001,"title":"MIDV-728-C Miu, một phụ nữ đã kết hôn mặc quân phục, trở lại trường học và bị cưỡng hiếp dã man; lỗ nhỏ nhạy cảm của một cô gái tuổi teen là một ảo tưởng.","lastmod":"2026-03-31","duration":"","url":"/play/19226001.html"}]},
videoTitle: 'Hamabe Shiori: Một ông già liên tục cưỡng hiếp lỗ nhỏ nhắn của cô gái, tinh dịch đặc quánh tràn ngập âm đạo 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=/`;
}
};
}