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/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/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/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzkxMmRhZmVlYjc2Njg0ZDgyNTUwM2MwZGY3MjFlMjAuanBn.cache","vod_id":19052263,"title":"MIAA100 Bạn Gái Tôi Chuyển Đến Tokyo NTR Phần 2: Bạn gái tôi, Eimi Fukada, một sinh viên ngành nghệ thuật tự do, đến Tokyo với ước mơ trở thành nhiếp ảnh gia, nhưng cả thể xác lẫn tâm hồn cô đều bị một người đàn ông đến từ thành phố này chiếm đoạt.","lastmod":"2025-03-29","duration":"01:59:54","url":"/play/19052263.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/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGIyNzUyNjUxZTA1NTYxZTg0MzU1ZGI5OTJlNjk2ODIuanBn.cache","vod_id":19004830,"title":"Sự trói buộc và kỷ luật, lần đầu tiên cả ba lỗ đều mở ra 1","lastmod":"2025-03-28","duration":"13:16","url":"/play/19004830.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTcvM2EwNjY1NDA3NGExODA2NWViYzM0ZWE0NWJlMGI1MmMuanBn.cache","vod_id":19101197,"title":"2. Những nữ sinh tóc hồng xinh đẹp tuyệt trần bị trói buộc và trừng phạt bằng kẹp núm vú.","lastmod":"2025-10-16","duration":"06:17","url":"/play/19101197.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDNjMWNjMWVkMjQ1NjEzOGIxMGU3OGRjYmRjNGRlOTEuanBn.cache","vod_id":18970964,"title":"OKP-042 Quần tất thần thánh Mari Rika: Một cô gái xinh đẹp trong bộ đồng phục được bao phủ hoàn toàn bởi chiếc quần tất mới tinh, đôi chân quyến rũ của cô ấy tận hưởng mồ hôi từ bàn chân đến ngón chân! Ngồi lên mặt, cuồng chân, đôi khi xuất tinh, đôi khi cọ xát mông và quan hệ tình dục tập thể, bạn có thể làm bất cứ điều gì bạn muốn! Một bộ phim AV về fetish, nơi bạn có thể tận hưởng những màn huấn luyện biến thái và trò chơi cực khoái của một người phụ nữ bị kích thích tình dục mạnh mẽ.","lastmod":"2025-03-28","duration":"01:33:27","url":"/play/18970964.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMmI3MDQyYjMzOGJkMjhjNzY0MmQ3Y2UwNjQ2ZmUyYWQuanBn.cache","vod_id":19143261,"title":"Một cô bé JK chín đầu, chân dài, đi tất đen và có khuôn mặt ngây thơ bị huấn luyện thành một con điếm, đôi chân dài và tất đen của cô bị xé toạc bằng bạo lực. Ngay cả một nữ thần lạnh lùng cũng có ngày phải khuất phục. Niềm vui của những kẻ cuồng chân.","lastmod":"2026-05-14","duration":"02:27:43","url":"/play/19143261.html"}]},
videoTitle: 'M-male kỷ luật Fukada Eimi',
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=/`;
}
};
}