Trái tim tôi thật khó hiểu…nhưng tôi muốn được ràng buộc. Chisato Shoda, Chisato Shoda, Takara Eizou","lastmod":"2026-07-11","duration":"01:40:20","url":"/play/19161428.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzM3MjRkNzAxMzA1MGNjNGFjYzk2ZjRiYWY2ODMzMGYuanBn.cache","vod_id":18997229,"title":"Hành Trình Tình Dục Miền Nam - Kỳ Nghỉ Lãng Mạn và Nóng Bỏng Bên Bờ Biển - Trang Web Chính Thức","lastmod":"2025-12-14","duration":"22:03","url":"/play/18997229.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjUxMzU1MGFhMWQzNjNkM2M5MmZjNDMwMDc4NGIyMGMuanBn.cache","vod_id":19023003,"title":"HMN463C Một người phụ nữ đã kết hôn, tìm nơi nương náu với người chồng không hề hay biết của mình, đến thăm một biệt thự đổ nát và tham gia vào cuộc quan hệ tình dục thụ tinh mãnh liệt với một người đàn ông độc thân đã lưu trữ tinh trùng của cô trong 30 ngày.","lastmod":"2025-03-24","duration":"02:32:08","url":"/play/19023003.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDgvY2JhN2IyYmE2NGVjMTA0OTgwOThlMjA1NDc4ZGU3ODguanBn.cache","vod_id":19061623,"title":"Trong tập trước của Mosaic, một cô gái bình thường sắp kết hôn và muốn thử hẹn hò với những người đàn ông khác sau lưng bạn trai ❤️ Nhưng sau khi thử, cô ấy không thể quay lại được nữa.","lastmod":"2025-11-07","duration":"26:54","url":"/play/19061623.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTY1ZTFjZDcxNjdmN2QzZjI3M2EzMmMzNmUyOGQzNTQuanBn.cache","vod_id":18931214,"title":"NDRA-017 Thật không may, vợ tôi sẽ làm việc trong ngành công nghiệp tình dục vào cuối tháng này.","lastmod":"2025-12-14","duration":"01:59:11","url":"/play/18931214.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2RjMGIzNjExY2I0ZTA0MmE1NmE3MDk1NTdmZTBiMGYuanBn.cache","vod_id":18964613,"title":"HND-593 Bản năng Tiếp xúc Kiêng cữ Quan hệ tình dục 30 Dương vật 49 Xuất tinh Không giới hạn Phóng tinh Quan hệ tình dục tập thể Minori Henan","lastmod":"2025-03-22","duration":"02:00:00","url":"/play/18964613.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjYwMzFjMWQ0Yjg5MDcxMWQ1ODc4NmI0YzkzMjAwZTYuanBn.cache","vod_id":19013460,"title":"DOCP200 đã quan hệ tình dục với em gái cùng cha khác mẹ của tôi trong ba ngày khi bố mẹ tôi không có nhà.","lastmod":"2025-03-24","duration":"02:26:11","url":"/play/19013460.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMzBkZTY0YTNkNDVhYmIwMGU4YzU4OTJlZjA5YzEzNjguanBn.cache","vod_id":19159492,"title":"Cho dù đó là nội dung khiêu dâm hay bất cứ thứ gì khác, tôi sẽ không ngừng nuốt quá nhiều tinh dịch; nó sẽ chạm vào cổ họng tôi. (Rina Masako, 雅子りな, えむっ娘ラボ)","lastmod":"2026-05-22","duration":"02:23:04","url":"/play/19159492.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2ZkOTcxZTdiZjdkM2RhYmZmMjk2M2E0NWJjYzVhYTUuanBn.cache","vod_id":18987927,"title":"SSNI-677 Tôi ghen tị với Yuna. Cô ta trở nên kiêu ngạo vì quá dễ thương, nên tôi đã sai khiến mấy người bạn nam của mình cưỡng hiếp cô ta hết lần này đến lần khác. - Hashimoto Yuna.","lastmod":"2025-12-14","duration":"01:57:50","url":"/play/18987927.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTRiMTRmODQyZTE1ZWNiMTFjM2YxMmM0ZjI5YjVmNmEuanBn.cache","vod_id":18946575,"title":"SNTJ-018: Gạ gẫm các cô gái, đưa họ về nhà, bí mật quay phim đời sống tình dục của họ và bán các video đó như phim người lớn mà không có sự đồng ý của họ. Cựu cầu thủ bóng bầu dục Vol.","lastmod":"2025-12-14","duration":"02:08:00","url":"/play/18946575.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTEzMjc5NTFjNjJhZDVhNzI1YTM3YTZkNjUyODNhYzkuanBn.cache","vod_id":18932785,"title":"300NTK-161 Mông đào nhạy cảm, bờm lông, tình dục co giật!! Nước ép bùng nổ","lastmod":"2025-12-14","duration":"01:09:09","url":"/play/18932785.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2MxNWI5YmQwMDRiZTIyNWM5ZjExN2JmYzgwYjE2MjQuanBn.cache","vod_id":19023617,"title":"IPZZ090C \"Chỉ cách đầu dương vật 3cm...\" Một nữ sinh còn trinh cố gắng thực hành quan hệ tình dục... nhưng chân cô run rẩy và cô không thể kiềm chế được.","lastmod":"2025-03-24","duration":"02:03:28","url":"/play/19023617.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNjVlMTI0NjdhMzI3YjlkNTliNmY5NTMxM2ZiMTA5MTguanBn.cache","vod_id":19158349,"title":"Tôi đã quan hệ tình dục chóng vánh với vợ của nhân viên phục vụ phòng trước khi trả phòng. Sau khi thuyết phục được cô ấy, tôi bắt đầu... \"Có vẻ như cô ấy thực sự thèm khát tình dục.\" Akari Tsumugi, nghiệp dư hạng S.","lastmod":"2026-05-16","duration":"02:02:51","url":"/play/19158349.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDRjM2UzYTgzY2Y4ZDEwMDZjMDBkYjRkNzFjMWJhODAuanBn.cache","vod_id":18939897,"title":"BACN-004 Ông lão gửi cho tôi toàn bộ biểu tượng cảm xúc cho thấy ông ấy đang ướt đẫm mồ hôi. (Nagisa Mizuki)","lastmod":"2025-03-22","duration":"02:19:05","url":"/play/18939897.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2MwNmQ2NWY5Y2FjN2FlZTA1ZjAyMjc3MDM5MWY5M2UuanBn.cache","vod_id":19001426,"title":"[Nhật ký Mẹ và Con trai 1-31 (Hoàn chỉnh)] Mối quan hệ loạn luân của người mẹ thực sự: Đã đạt được xuất tinh bên trong thành công sau hơn một tháng!","lastmod":"2025-03-23","duration":"02:31:04","url":"/play/19001426.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjAvMGI0ZjQ5ZTNjMzg5NWMxZWIzYjk3NWZmNjNhMTAxYzkuanBn.cache","vod_id":19063544,"title":"Một người phụ nữ vô cùng xinh đẹp với ngoại hình đạt điểm 9/10 đang quan hệ tình dục với bạn trai tại nhà.","lastmod":"2025-12-13","duration":"01:07:02","url":"/play/19063544.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjY0MWE4ZmRjZTE2NDkxZGU5NDU3YTNhNzgxYmUxOTUuanBn.cache","vod_id":18965581,"title":"[Không kiểm duyệt] 598HMT-020 [Một nữ công chức lẳng lơ bị cưỡng hiếp dã man!] Góc nhìn người thứ nhất, cảnh quan hệ tình dục nồng nhiệt với một cô gái lẳng lơ phun trào dịch tiết, nước bọt tuôn ra! [Công chức_Phun trào nhiều]","lastmod":"2025-12-14","duration":"00:47:00","url":"/play/18965581.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWVhZmMzYzhmMTU0ZTFiMjVjMmE4ODZmMWRmYWViNTcuanBn.cache","vod_id":19026977,"title":"1Pondo 033024_001 PtoM Tình Dục Nagisa Shinohara","lastmod":"2025-03-29","duration":"58:25","url":"/play/19026977.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzgwNWY5ZTFlNzRlNjA0OGZkOWU3ZTMwZjEzOTMxZWMuanBn.cache","vod_id":18974083,"title":"[Không kiểm duyệt] 484SDGN-024 [Ba người đàn ông từng trải] Viên chức nghiêm túc này thích quan hệ tình dục không an toàn! Tôi đối xử với Nan-chan, người cũng thích quan hệ tình dục không an toàn, theo bất kỳ cách nào tôi muốn [Bao gồm cả xuất tinh bên trong!]","lastmod":"2025-12-14","duration":"01:12:10","url":"/play/18974083.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjUyOGJkNzEwZGJmYjYzNTA0MjkxZmFjZjU0OTI2YzIuanBn.cache","vod_id":19015892,"title":"LUXU1132 TV Cao Cấp 1117 \"Tôi muốn xóa bỏ nỗi đau của quá khứ...\" Một người phụ nữ, bị ám ảnh bởi chuyện quan hệ tình dục với bạn trai cũ, lắc lư bộ ngực đầy đặn, làm ẩm vùng kín không lông và vô thức đưa dương vật của người đàn ông vào miệng cùng với nước bọt, phơi bày những ham muốn thầm kín của mình trước ống kính...","lastmod":"2025-03-24","duration":"01:19:37","url":"/play/19015892.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjcyYzY2NDVkNGYxMzQ1NzM1ZmI3NDhkZWJiZTI1NzMuanBn.cache","vod_id":18985243,"title":"KAWD-976 完全禁欲记录30天120%敏感度的挑逗,极度抽搐的完美身材,性爱始末,伊藤真由希","lastmod":"2025-03-23","duration":"02:33:02","url":"/play/18985243.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvM2E4YTdmNWY5NDVjYTQ4ZTY3NDEyYjlmNmJmYTVmOGQuanBn.cache","vod_id":19065690,"title":"Lý do vợ và con trai tôi đột nhiên đòi quan hệ tình dục kiểu bánh kem - Kiyomi Reno ALDN_353","lastmod":"2025-12-14","duration":"02:25:03","url":"/play/19065690.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTUvNTRhNDE3NTYzNGY5YzFlYWU4MTU5NGExZjYwYTMyNDcuanBn.cache","vod_id":19134688,"title":"Anh ta xuất tinh vào trong tôi mà không dùng bao cao su rồi liếm hậu môn tôi.","lastmod":"2025-12-22","duration":"20:58","url":"/play/19134688.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmQ0ODA1MGM3ZjhmYjg3MjhlMzQzOWIwOWMwNDc3M2EuanBn.cache","vod_id":19014969,"title":"Phương pháp chữa trị tối ưu: chữa lành cho bạn gái dịu dàng của tôi, Harmony, bằng quan hệ tình dục và mát xa.","lastmod":"2025-03-24","duration":"29:53","url":"/play/19014969.html"}]},
videoTitle: 'Bạn trai tôi, người thích mặc đồ nữ, xuất tinh vào trong tôi khi quan hệ tình dụ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=/`;
}
};
}