Người phụ nữ giàu có dạy dỗ nô lệ nam. Người phụ nữ giàu có dùng tay không khéo léo dạy dỗ chàng trai trẻ.","lastmod":"2026-07-11","duration":"26:47","url":"/play/19154082.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWMxNzY5ZGE0MTFjODNiMjBjMTA5NmUzOGQ0YTFhNjQuanBn.cache","vod_id":18963794,"title":"Dạy dỗ Dương Mụ","lastmod":"2025-03-28","duration":"07:16","url":"/play/18963794.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjdkMjhjYjk5M2I3Y2NjMjJhNGE2YWZiN2I5MjRjNjUuanBn.cache","vod_id":19127563,"title":"Người vợ trở về quê nhà một tuần, dùng dương vật cực lớn của mình để \"dạy dỗ\" cô con gái riêng ương bướng, ngực nở nang. (Spring Sunshine, PPPE-380)","lastmod":"2026-02-28","duration":"01:57:59","url":"/play/19127563.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTYzZGZkZTE0MDVkOGZkZGVkMmNmM2VmMTlkNjExOGYuanBn.cache","vod_id":19011556,"title":"Một căn phòng bí mật nơi một người thầy nửa người nửa thú hướng dẫn và kỷ luật học sinh!","lastmod":"2025-03-28","duration":"02:06:35","url":"/play/19011556.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MjEvNzJjZWJkODcwOTVhNzgwY2RjYjVmOGM3NWE4NTkyZjAuanBn.cache","vod_id":19156648,"title":"Đúng là một kẻ phục tùng tuyệt đối. Con điếm này đang liếm chân tôi và mút dương vật to lớn của tôi một cách thích thú, nó thật sự quá dâm đãng!","lastmod":"2026-07-20","duration":"26:52","url":"/play/19156648.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWM4OTg2NTY1ZmMzMzM5MjY0MjFkODhiNjk3ZmY0ZmUuanBn.cache","vod_id":18998300,"title":"Trừng phạt bà chủ","lastmod":"2025-03-28","duration":"55:59","url":"/play/18998300.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzk4ZjM3NjVlNGRiNGJlN2RhZmU4YTVmODgzZGFhMzMuanBn.cache","vod_id":19128293,"title":"Những bức ảnh riêng tư bị rò rỉ cho thấy cô gái lẳng lơ của một anh chàng điển trai ở Thành Đô, một hình ảnh tương phản giữa cảnh một cô gái lẳng lơ bị dạy dỗ và những khoảnh khắc gợi cảm khác nhau của cô ta trên giường.","lastmod":"2026-03-03","duration":"05:36","url":"/play/19128293.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9zYnp5dHBpbWc0LmNvbTozNTE5L3VwbG9hZC92b2QvMjAyNjAyMjItMS9hNjA5YjRjZWU0YjIzYzg5OTk0MmU5ZmVlNmQxNDQxOS5qcGc=.cache","vod_id":19126269,"title":"Linlin, một phụ nữ trẻ đã kết hôn và là tiếp viên hàng không của hãng China Eastern Airlines, bị bắt quả tang ngoại tình. Sau khi gọi điện cho gia đình, cô thay đồng phục và mặc quần tất đen, rồi bị lão Vương cưỡng hiếp dã man, hắn ta còn xuất tinh vào miệng cô.","lastmod":"2026-02-22","duration":"31:29","url":"/play/19126269.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjBjZTI0ZTRmMzY3NDAxNjlmYWU0NTg5ODI5NDIyODcuanBn.cache","vod_id":19029765,"title":"Một người vợ bị trói buộc và huấn luyện: Một cô vợ trẻ làm việc theo hợp đồng cho một nhà văn nổi tiếng. Một con chó cái tuân lệnh để hoàn thành bản thảo.","lastmod":"2025-03-29","duration":"02:04:51","url":"/play/19029765.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9zYnp5dHBpbWc0LmNvbTozNTE5L3VwbG9hZC92b2QvMjAyNjAyMjEtMS9mMTk4NTA5NjhhMWU1MmFlMTc5NThhYzFmYWQxYmNhMi5qcGc=.cache","vod_id":19126087,"title":"Tin đồn tai tiếng về một influencer Douyin có 170.000 người theo dõi_Kua Kua Xiu Xiong_Những hình ảnh rò rỉ cực kỳ phản cảm_Cô nàng gợi cảm khoe thân_Vùng kín lộ rõ mồn một","lastmod":"2026-02-21","duration":"03:16","url":"/play/19126087.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjUwYjYyNDhjMzQ5Y2IxNjk5ZGY2MGZkZmRlOGVhZmEuanBn.cache","vod_id":19029166,"title":"Mối quan hệ loạn luân giữa anh chị em ruột, sự huấn luyện vô lý của người anh trai!","lastmod":"2025-03-29","duration":"21:06","url":"/play/19029166.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZTg1MWNhMTQ5NjU0YTM4NzFiMDEyODA0YWI3NmNjOWEuanBn.cache","vod_id":19014003,"title":"Giam cầm, tra tấn và xuất tinh: Thân thể của điều tra viên bị hành hạ về thể xác và thẩm vấn!","lastmod":"2025-03-28","duration":"02:28:42","url":"/play/19014003.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDcwYTY0OTc3MjdiZTA3OWZiYTJkYzg0MWFkODAwZDUuanBn.cache","vod_id":19131133,"title":"Những hình ảnh rò rỉ trên mạng của Cat Baby hé lộ thân hình tuyệt mỹ, quý phái, tựa nữ thần nơi công cộng, nhưng lại là một con điếm lẳng lơ nơi riêng tư.","lastmod":"2026-03-16","duration":"27:15","url":"/play/19131133.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvODU5MzY5ZjQyMTRmZWJmYzM0MzEzMjU5ZmIwZGUyYzkuanBn.cache","vod_id":19127814,"title":"Sun Liqi, một nhân viên văn phòng sinh vào những năm 1990, đã bị phanh phui chuyện tham gia quan hệ tình dục tập thể kiểu SM với những người cùng đi du lịch bằng ô tô tại một khách sạn.","lastmod":"2026-03-01","duration":"38:45","url":"/play/19127814.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNmEyMzFkNzYwYjIzOWQ4MDVmMmZiMWYyOTMwOTBkNzcuanBn.cache","vod_id":19125210,"title":"Nội dung khiêu dâm bị rò rỉ, nữ thần đẹp đến nao lòng, sự tương phản giữa khuôn mặt và ngoại hình của cô ấy thật đáng kinh ngạc, những thuộc tính dâm dục cực mạnh, đạt đỉnh cao trong BDSM.","lastmod":"2026-02-17","duration":"12:00","url":"/play/19125210.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjUvNGIyNTEzYjRiMjdiNDhkZDQ4ZjIzNzI0YjdjMjMwNDUuanBn.cache","vod_id":19151562,"title":"Sinh viên mỹ thuật Thành Đô đang trải qua khóa đào tạo căng thẳng, nhưng các sinh viên khác lại tỏ vẻ chán nản.","lastmod":"2026-06-24","duration":"02:36","url":"/play/19151562.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWMwNDkyYWQzZDAxM2E5ZDdlMjgyNDE5OGQ0NjExYjguanBn.cache","vod_id":19015366,"title":"Một giáo viên trung niên đang được một cậu bé tinh nghịch huấn luyện!","lastmod":"2025-03-29","duration":"01:41:35","url":"/play/19015366.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWEwZWQ0YTI4OGFhYWIwODhlOTc2M2IwYjBiN2NiNGEuanBn.cache","vod_id":19010842,"title":"Quá trình huấn luyện gợi cảm của một nữ chúa tể!","lastmod":"2025-03-28","duration":"02:06:50","url":"/play/19010842.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMTMxYjMxZDhmZmEyODNjNTlkYmVkM2QyZmZjYTFiMzcuanBn.cache","vod_id":19144087,"title":"Thân hình hạng S, con điếm nhỏ dâm đãng, tôi thật dễ thương và ngây thơ, rồng hai đầu yuri, phơi bày nơi công cộng, chiến tranh băng đảng nhiều người, BDSM, khá tương phản.","lastmod":"2026-05-18","duration":"01:00:15","url":"/play/19144087.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZGI2MmYwOTVhZTk3ODc2MGQ3MjVhOWVhNGQwNWUyNzcuanBn.cache","vod_id":19132135,"title":"Zhang Yufen, một sinh viên trường Cao đẳng Nghề Trùng Khánh, đã sống chung với tôi sau khi chúng tôi bắt đầu sống chung. Cô ấy phải trải qua nhiều hình thức \"huấn luyện\" khác nhau và lúc nào cũng mặt đỏ bừng, hoàn toàn thiếu năng lượng và sức sống.","lastmod":"2026-03-21","duration":"02:30","url":"/play/19132135.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTJhODViZTkwODJjMjE4YjU0MjI1ZjBjZjA1ODMwNTEuanBn.cache","vod_id":19118828,"title":"Ảnh riêng tư bị rò rỉ: Năm 2002, cô gái nhảy múa lần thứ tư trong phòng khách sạn, xuất tinh lên mặt, quan hệ tình dục bằng miệng, nuốt tinh dịch, trang phục khiêu gợi. Con nhỏ dâm đãng này đã được huấn luyện và thành thạo.","lastmod":"2026-01-16","duration":"01:05:22","url":"/play/19118828.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTJhZGE4MDU2MjQ2MWI3MDI5NzY2NDZhOTE2MTBkN2QuanBn.cache","vod_id":19129382,"title":"Thông tin rò rỉ hé lộ một cô gái nhà giàu tóc hồng xinh xắn nhưng thực chất lại là một kẻ xấu tính; cuộc sống trái ngược của một \"gái gọi thế hệ thứ hai\" ở Thâm Quyến đã được phơi bày.","lastmod":"2026-03-08","duration":"07:20","url":"/play/19129382.html"}]},
videoTitle: 'Qin Kexin MD_0180_2. Ca đêm, phòng bệnh, trói buộc và huấn luyện chó cái.',
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=/`;
}
};
}