Milk Puff, gái gọi anime offline chất lượng cao, xuất tinh bên trong.","lastmod":"2026-07-11","duration":"","url":"/play/19207513.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMGMyNzNjMzRkOGQ0ZjVmY2JhZTEzOTEwOTU5OTcyZGUuanBn.cache","vod_id":19176618,"title":"Nữ influencer nổi tiếng trên Douyin với 80.000 người theo dõi, biệt danh \"Chị Tiên\", lại vướng vào một vụ bê bối khác sau khi video nhạy cảm trước đó của cô bị rò rỉ. Giờ đây, những nội dung gây sốc hơn nữa đã xuất hiện, bao gồm cả video cô nuốt tinh dịch, được rao bán như một cuộc gặp mặt riêng tư ngoài đời thực với một khoản tiền nhất định.","lastmod":"2026-01-27","duration":"0:04:51","url":"/play/19176618.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvOWVlNTg1ZTRlNTkyMzVjODY5OGU1YTZhY2M2MzUzNDkuanBn.cache","vod_id":19165187,"title":"Buổi huấn luyện SM dành cho một cô gái mèo con hàng đầu trong tất đen, trói buộc, cuồng chân, tình dục và thâm nhập – cực kỳ kích thích!","lastmod":"2025-12-13","duration":"0:21:55","url":"/play/19165187.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjcvN2JiYmY1M2Y4MzVkZWY2YzgzNWY3MmY5NWQ2NzcwODYuanBn.cache","vod_id":19132245,"title":"Xuất tinh liên tục bên trong cơ thể trong khi giao hợp. 18 lần xuất tinh liên tiếp bên trong cơ thể. Wakui Mito ABW-317-C","lastmod":"2025-04-27","duration":"3:58:30","url":"/play/19132245.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjg0YTc4NTdkM2JhOTJhNmUwM2YxYjk0MmM1N2NhOWMuanBn.cache","vod_id":19111127,"title":"Loạt phim \"Học giả xuất sắc\" - cuộc gặp gỡ tình một đêm tại khách sạn với một gái gọi gợi cảm, cô gái mặc quần tất đen quyến rũ liên tục la hét.","lastmod":"2025-03-26","duration":"0:42:19","url":"/play/19111127.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTY4NDM3MTNkYmJjMjJhZjc5YTdjYzNhYTFlYjNlYzIuanBn.cache","vod_id":19108992,"title":"Nữ streamer xinh đẹp \"Little Darling\" khát khao đến mức quyến rũ một anh chàng giao đồ ăn để quan hệ tình dục trước mặt mọi người.","lastmod":"2025-03-26","duration":"0:25:43","url":"/play/19108992.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMDYvYzI3NzAxOGY3ZDdjODhlNGQ4ZThmNzYxNmQ0OWZiYTMuanBn.cache","vod_id":19158187,"title":"Chỉ mình tôi không thể quan hệ tình dục - Trao đổi NTR - Azusa Tani - Serina Usui - DASS539","lastmod":"2025-10-05","duration":"2:33:32","url":"/play/19158187.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzcwY2JkNWE2ZmI5OGZjZGQ4OTY0ZmFlZDI3ODdjNWEuanBn.cache","vod_id":19076405,"title":"SHIND082, một kẻ thích xem trộm và có ham muốn tình dục mãnh liệt, đã ghi lại cảnh hai người quan hệ tình dục với những người đàn ông giàu có bao nuôi họ cùng lúc #31-32","lastmod":"2025-03-26","duration":"3:33:35","url":"/play/19076405.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2NlNWFmOWJhYjc5MTliMjJiZTY4ZTY3ZWVhOTkzMjguanBn.cache","vod_id":19089674,"title":"Sự ngại ngùng bùng phát! Một nhóm học sinh nam và nữ trải qua cuộc khám sức khỏe để kiểm tra sự phát triển bình thường của tuổi dậy thì, khiến bộ phận sinh dục của họ trở nên nhạy cảm.","lastmod":"2025-03-26","duration":"2:27:37","url":"/play/19089674.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZGRhMmViM2E2YmY0MmNiNzY4NzE4MThhZmYyNDczYjQuanBn.cache","vod_id":19202162,"title":"Cô gái trẻ mặc áo trắng và quần bó màu hồng có sức quyến rũ tuyệt vời; thân hình tròn trịa, gợi cảm của cô ấy thật tuyệt khi được chạm vào, với những đường cong và vóc dáng ma mị. Chúng tôi ra vào mạnh mẽ, tận hưởng cuộc giao hợp mãnh liệt.","lastmod":"2026-05-30","duration":"0:29:55","url":"/play/19202162.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWQ2N2IzMTdkMmQxMzU3MjI1ZjA5YWE2MzcxZjM3YzQuanBn.cache","vod_id":19109804,"title":"Jingdong Pictures - Tình yêu của em gái tôi","lastmod":"2025-03-26","duration":"0:28:29","url":"/play/19109804.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzZjOGU5OTExM2UxZmQzYzEzMWQwZjhmM2ExODFhMGQuanBn.cache","vod_id":19026886,"title":"IENF-033 Một trò đùa phản tác dụng khi chị gái tôi ép tôi vào một cuộc gặp gỡ nồng nhiệt, chị ấy hành hạ tôi cho đến khi xuất tinh vào bên trong! 2","lastmod":"2025-03-25","duration":"2:35:06","url":"/play/19026886.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2JmNDg5ZjgxMDE2MzE4MjAzYWY3NGVhMjY0YjA3ZGYuanBn.cache","vod_id":19046860,"title":"Hàng ngày, nhiều phụ nữ năng động về tình dục với vòng ngực cỡ H tham gia vào các hoạt động tình dục tập thể.","lastmod":"2025-03-26","duration":"1:16:57","url":"/play/19046860.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjYvYzc4NzZlMWY2MDE0Y2Q1NDViMWM0MDNiMjI1MTVlZDcuanBn.cache","vod_id":19132063,"title":"Fukada Eimi, một người phụ nữ bị ám ảnh bởi việc quan hệ tình dục nhiều lần mỗi ngày, đã kiêng quan hệ tình dục trong một tuần, cho phép cô ấy liên tục lấy được tinh dịch của nam diễn viên. (Fukada Eimi EBOD-738-C)","lastmod":"2025-04-26","duration":"2:00:03","url":"/play/19132063.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMmM2MjZhZTQ5MGI4NTJmOTBiMGEwZWM3ODcwNzUyNWMuanBn.cache","vod_id":19108377,"title":"Nữ thần Cô","lastmod":"2025-03-26","duration":"0:29:13","url":"/play/19108377.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9zYnp5dHBpbWc0LmNvbTozNTE5L3VwbG9hZC92b2QvMjAyNjAzMTQtMS8yOTRjNjFhYjM2NzliY2MxMjFkYjNjMjkzNjgwNjdlMS5qcGc=.cache","vod_id":19186499,"title":"Hơn 120.000 lượt tải xuống trên trang web doujinshi FANZA!! Tác phẩm gốc: Mamaya đưa một bà nội trợ 41 tuổi về nhà làm việc, URE-130","lastmod":"2026-03-14","duration":"2:32:19","url":"/play/19186499.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTAzN2FjOWYzNGY2MjYyNTUxOTNiYWUyODdlZmNhNzAuanBn.cache","vod_id":19089802,"title":"[Số lượng có hạn] Bố mẹ tôi tái hôn, và tôi bị các chị gái nghịch ngợm vắt kiệt sức. Sumire Kuramoto, hay còn gọi là Minase.","lastmod":"2025-03-26","duration":"2:30:18","url":"/play/19089802.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjYvODlhNTQ4YzlmY2I0Yjc4OGM3NDRjYzgxNzkzMmYxNGUuanBn.cache","vod_id":19205001,"title":"Một người phụ nữ xinh đẹp tuyệt trần, kiêu ngạo tham gia vào một trò chơi nhập vai tưởng tượng đầy kịch tính với một gia sư quyến rũ, người đã dụ dỗ một chàng trai trẻ quan hệ tình dục. Từ phòng tắm đến cửa sổ, họ thực hiện những màn quan hệ tình dục mãnh liệt từ phía sau và đạt cực khoái.","lastmod":"2026-06-25","duration":"1:17:29","url":"/play/19205001.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTc1ZTdmZTc2YWM5MjE4OGIwZjhmYzEyNWEwNmQxOGUuanBn.cache","vod_id":19080776,"title":"SDSS452 Soft HCUP, cám dỗ ngọt ngào của cuộc sống thường nhật, cỗ máy tạo ra người lười biếng, Yuuko Ono.","lastmod":"2025-03-26","duration":"2:02:45","url":"/play/19080776.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTQyZjMzZGNjMWY2NzMyYjkzMDY4MDY0ODMxM2JhNzYuanBn.cache","vod_id":19089531,"title":"Nandan, một video quay cảnh một ông già biến thái đang quan hệ tình dục.","lastmod":"2025-03-26","duration":"2:15:12","url":"/play/19089531.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjJkMTA3OWM3MmNlMTJhYTAwNGNiMjY5YjcxMzI2NzcuanBn.cache","vod_id":19097742,"title":"Một buổi hẹn hò tập thể với những phụ nữ trưởng thành! Tôi chỉ muốn làm tình! Một bữa tiệc thịnh soạn của những thân hình trưởng thành đang say đắm tìm kiếm nhau! 20 người, 285 phút, đặc biệt!","lastmod":"2025-03-26","duration":"4:46:55","url":"/play/19097742.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWRiOWVjNzkxOWJmZmJhMGU0NDc4OGY5MGFkN2M1YmIuanBn.cache","vod_id":19114340,"title":"Bạn trai mới của tôi rất giỏi chuyện chăn gối.","lastmod":"2025-03-26","duration":"0:42:33","url":"/play/19114340.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZWQxYjBmNzRiNDJmNDZjZWNiNThlNDZkNjJhYjhkZTYuanBn.cache","vod_id":19174522,"title":"Một đoạn video ghi lại cảnh một phụ nữ trẻ xinh đẹp, người đã lâu không quan hệ tình dục, tán tỉnh và quan hệ tình dục trong phòng bệnh viện đã bị rò rỉ.","lastmod":"2026-01-17","duration":"0:16:55","url":"/play/19174522.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYWVkYTliODhhZjcwNjNmMTYzMzFhMzgyM2FjYTdlODUuanBn.cache","vod_id":19117890,"title":"Kasagi Ichika bị cưỡng hiếp ở cự ly gần trên đường đến trường và không thể nói được. Trên đường về nhà, cô tiếp tục bị một nhóm đàn ông cưỡng hiếp nhiều lần trên tàu.","lastmod":"2025-03-26","duration":"1:57:16","url":"/play/19117890.html"}]},
videoTitle: 'Chị gái tôi, người đã quan hệ tình dục mỗi ngày trong suốt thời niên thiếu của tôi, hôm nay sẽ về nhà.',
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=/`;
}
};
}