Tuyệt vời, đảm bảo sẽ muốn quay lại! Dịch vụ tình dục đặc biệt của một nữ tiếp viên xinh đẹp, ngực khủng, kiểu chữa lành◆Trên Yumi 夕美しおん MAXING","lastmod":"2026-07-11","duration":"","url":"/play/19207083.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTFiNjI1MzE1NzdkN2Y2ZTc1YTMwYTgwZmM5ZTZmM2UuanBn.cache","vod_id":19067933,"title":"Một nữ sinh viên đại học xinh đẹp với thân hình như người mẫu đang hẹn hò với bạn trai tại một nhà thổ. Chàng trai rất năng động và có dương vật cương cứng mạnh mẽ.","lastmod":"2025-03-26","duration":"0:17:10","url":"/play/19067933.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2ZhMTVkNzI1ODQ2YjgxZDU2OTg5MGJhZjY2NDRlOGUuanBn.cache","vod_id":19127276,"title":"Cặp chị em xinh đẹp mới! Hai người phụ nữ tắm chung trong phòng tắm! Họ xoa ngực nhau, rên rỉ và chạm vào vùng kín của mình, trở nên vô cùng hưng phấn. Sau khi tắm xong, họ dùng đồ vật trên giường để xoa vùng kín.","lastmod":"2025-03-26","duration":"0:40:58","url":"/play/19127276.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZmRiZTIxOTI4MGU3NTNlYjdmN2JmOGM0MGYwYmY1ZGMuanBn.cache","vod_id":19026982,"title":"HODV-21425 Màn quan hệ tình dục xuất tinh mãnh liệt với người tình tuyệt vời nhất - Người phụ nữ xinh đẹp tuyệt trần Hamasaki Mikuru","lastmod":"2025-03-25","duration":"2:09:34","url":"/play/19026982.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvMzQ2YTU5Mzk1ZGM5ODUzYzg3ZTAwYjMyYTQ4NzMzOWMuanBn.cache","vod_id":19167032,"title":"※Không có kịch bản hay diễn xuất! Tai nạn có thể xảy ra bất cứ lúc nào! Một cô sinh viên đại học nóng bỏng với vòng một cỡ H căng tròn, ướt đẫm dịch tiết gợi cảm, được quay một mạch! Diễn viên vô danh BLK-658","lastmod":"2025-12-13","duration":"1:58:45","url":"/play/19167032.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWE3M2M2NmJjNjI0MjUzZWQ3MTAxYzllOTE4NzIyZGQuanBn.cache","vod_id":19127863,"title":"TÀI LIỆU: Bản năng được giải phóng, Tình dục cực khoái - Sự giải phóng ham muốn tình dục của người vợ xinh đẹp - Wakamiya Hono BIJN-235-C","lastmod":"2025-03-26","duration":"2:08:23","url":"/play/19127863.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDEvMmZmMTQwMTc1NDlmZGNiNTBhYjNhYzg4ODM3ZGY2MjUuanBn.cache","vod_id":19152279,"title":"Tình mẫu tử và sự thỏa mãn tình dục xua tan căng thẳng dưới hơi ấm của làn da trong \"Liệu pháp chữa lành cận cảnh\", với sự góp mặt của một chuyên viên massage trẻ hóa tên là Shiori (nữ diễn viên chưa rõ tên). (AARM273)","lastmod":"2025-08-31","duration":"2:10:10","url":"/play/19152279.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMGFlY2YyYzMzYzRmYjkyODUyY2I0MjQ3NmY3ZWE1OTQuanBn.cache","vod_id":19171081,"title":"Ham muốn tình dục của một phụ nữ 60 tuổi! Một người phụ nữ lớn tuổi, trưởng thành trong ngày sinh nhật thứ 60 của mình ngấu nghiến dương vật với những ham muốn tình dục không thể tin được. 2 Diễn viên không rõ danh tính PRMJ-326","lastmod":"2025-12-31","duration":"4:03:39","url":"/play/19171081.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDYzNjFhYzdlMTQ1ZTUxYTIwOGYyZjZlNjJlNDk1ZWEuanBn.cache","vod_id":19080511,"title":"Yuko Ono tình cờ gặp lại bạn gái cũ, người mà anh vừa chia tay, ngay trước khi họ quan hệ tình dục. Anh mất bình tĩnh và đã ngoại tình với người phụ nữ hoàn hảo và tiện lợi này cho đến sáng hôm sau.","lastmod":"2025-03-26","duration":"1:58:24","url":"/play/19080511.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjE4MjU1MzA1NTY5YjkzNGI1MGQ3M2FkZmFkMTI2MTQuanBn.cache","vod_id":19092724,"title":"Một thông tin rò rỉ gần đây trên Twitter tiết lộ rằng một người tự xưng là chuyên gia PUA (Nghệ thuật tán tỉnh) và huấn luyện viên thể hình, là nữ sinh trung học cơ sở, đang có những cuộc gặp gỡ tình dục bạo lực với một cô gái trẻ, dáng người nhỏ nhắn, mặc kimono hoặc đồng phục nữ sinh trung học.","lastmod":"2025-03-26","duration":"0:23:18","url":"/play/19092724.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGJkNGZlZGIwMDUzMmE4MDNhMDg5MmVhMTAzMDMzOWQuanBn.cache","vod_id":19057033,"title":"Một cô gái xinh xắn, không bị kiểm duyệt, đã bị hai người đàn ông vạm vỡ xuất tinh một cách tàn nhẫn.","lastmod":"2025-03-26","duration":"0:19:42","url":"/play/19057033.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjZmNmY3YWY4M2U0MDRkMGQ5ZjM0MTY4NmYxNDNjY2EuanBn.cache","vod_id":19177110,"title":"Ban đầu tôi dự định đi suối nước nóng một ngày với một nữ đồng nghiệp đã kết hôn mà tôi làm việc bán thời gian cùng, nhưng... cuối cùng tôi lại quan hệ tình dục ngoài trời, và cô ấy thậm chí còn mút núm vú của tôi suốt hai ngày liền. (FJIN-113)","lastmod":"2026-01-29","duration":"2:10:29","url":"/play/19177110.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjcvOTg1YjQ4ZTA1YjkxNjZmNDgzNjNjNmI4NDc1MGEzYjkuanBn.cache","vod_id":19145828,"title":"OFSD3001 Hikari (30 tuổi) đã có chuyến đi suối nước nóng 2 ngày với một người bạn cùng lớp đã kết hôn có vòng một đầy đặn mà anh gặp lại tại buổi họp lớp, và họ đã có quan hệ tình dục.","lastmod":"2025-07-26","duration":"0:48:17","url":"/play/19145828.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDYvMWQ4ZDc5Mzk5ZGIyOTNjMjQ4ZGI5OTkwYzcxNDE0NjkuanBn.cache","vod_id":19206931,"title":"Một nô lệ tình dục hàng đầu, người đẹp xăm trổ với vòng eo thon gọn và vòng ngực lớn bị chủ nhân xâm hại tình dục dã man và xuất tinh vào bên trong.","lastmod":"2026-07-11","duration":"","url":"/play/19206931.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjczZTgxNzU2MTVhMTkzNWEzMmE4ZWZmOGY1M2UwMDguanBn.cache","vod_id":19027260,"title":"BAZX-165 Một nữ nhân viên văn phòng giàu có và xinh đẹp bị sếp thuyết phục quay một video người lớn trong giờ nghỉ trưa. VOL.009","lastmod":"2025-03-25","duration":"3:50:14","url":"/play/19027260.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjEvYmVmMTg5M2JhZGFkMjhmZWY2YzhiY2Y1NzI0MjVlOGQuanBn.cache","vod_id":19204519,"title":"Cô gái chuyển giới Lua, với khuôn mặt búp bê siêu ngọt ngào và dễ thương, đã bị một người đàn ông vạm vỡ với dương vật to lớn cưỡng hiếp dã man. Biểu cảm dâm dục của cô ta thậm chí còn thái quá hơn cả một người phụ nữ, với tuyến tiền liệt và hậu môn cùng lúc đạt cực khoái và xuất tinh.","lastmod":"2026-06-20","duration":"0:06:29","url":"/play/19204519.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMGRmOWM0Y2NmYzk2MjcwYjVjOTBjZDlmMDg5MDA0OTQuanBn.cache","vod_id":19029688,"title":"Khi tôi cởi quần áo của bạn gái đầu tiên... tôi không thể tưởng tượng được bên dưới lớp quần áo đó là làn da trắng mịn và bộ ngực đầy đặn tuyệt đẹp của cô ấy. Tôi vô cùng phấn khích, quan hệ tình dục với cô ấy cho đến khi không còn chút ham muốn nào.","lastmod":"2025-03-26","duration":"1:58:49","url":"/play/19029688.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzNjMDJiYzhjODExZjI5Yjg4NTJlYmRhMzYzMmYxNTYuanBn.cache","vod_id":19076111,"title":"Một người dùng Twitter với tính cách bất ngờ đã thực hiện một hành động giống như Người Nhện, trải qua một cuộc gặp gỡ tình dục tàn bạo và bị xuất tinh lên mặt.","lastmod":"2025-03-26","duration":"0:11:50","url":"/play/19076111.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDhjZGM3ODQ2NjgzZjRiNzhjMTVkOTIzNTBmNzI3YTguanBn.cache","vod_id":19112026,"title":"[Ghép khuôn mặt bằng AI] Dilraba Dilmurat, người đẹp cô đơn tự thỏa mãn + quan hệ tình dục bằng miệng","lastmod":"2025-03-26","duration":"0:02:53","url":"/play/19112026.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjAvMzQ5YmVjM2I1ODRlY2YyOWRiOTRhYWU0ZDU2ZDBhYjUuanBn.cache","vod_id":19144768,"title":"Ảnh tự sướng \"quan hệ tình dục trong xe\" bị rò rỉ, ảnh nóng của người nổi tiếng trên mạng bị lộ.","lastmod":"2025-07-19","duration":"0:05:41","url":"/play/19144768.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvODFhMTZiYTNiNmJmMDI5MDY0OGE3NmRhODk5OGE4YjUuanBn.cache","vod_id":19186093,"title":"Tôi muốn liếm lòng bàn chân của những người phụ nữ xinh đẹp cho đến khi chúng mềm nhũn và nhão nhoẹt! Phụ nữ công sở mặc vest - GUN-785","lastmod":"2026-03-12","duration":"2:00:24","url":"/play/19186093.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzU2NTM0OGNmMWYyMThlNDI0YTEyMjQ3N2EwNTMxZmMuanBn.cache","vod_id":19037099,"title":"Hai cô gái trẻ xinh đẹp, mảnh mai đang bị cưỡng hiếp một cách thô bạo khi dương vật thâm nhập vào âm đạo của họ.","lastmod":"2025-03-26","duration":"0:46:37","url":"/play/19037099.html"}]},
videoTitle: 'Anh ta lập tức quan hệ tình dục với một người phụ nữ xinh đẹp tên là Momose Toriri, người có khuôn mặt dễ thương và ham muốn tình dục cao.',
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=/`;
}
};
}