Huấn luyện nô lệ nữ của Sư phụ Xiao Er: Cưỡng bức xuất tinh trong một Lolita dâm đãng","lastmod":"2026-07-11","duration":"","url":"/play/19206890.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWE3MGFmMjk3NzAxYzNjYTA5OGM3MDgyMzdiYzJjZTcuanBn.cache","vod_id":19040664,"title":"SALO-023 Bác sĩ nữ dâm đãng Konno Hikari, người mặc quần tất đen, sử dụng roi da cao gót để trừng phạt dương vật của một người đàn ông phục tùng. (Konno Hikari)","lastmod":"2025-03-26","duration":"1:32:14","url":"/play/19040664.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjA0YTAzYzA1NGJjMTgwNjQwZWEyMjIzMzczYjZmYWYuanBn.cache","vod_id":19170959,"title":"Loạt phim Trung Quốc ~ Sinh viên đại học làm giúp việc nhà khoe vùng kín béo ú của mình cho chủ nhà nam xem!!","lastmod":"2025-12-30","duration":"0:06:14","url":"/play/19170959.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzg2NmRkYzQ4MDY2MTc2ZTNmYjgzMzg2NjBhNDU1MzMuanBn.cache","vod_id":19033693,"title":"[Muốn kết hôn với người đàn ông lớn tuổi hơn] Sau khi bị bạn gái phản bội, tôi đã giam giữ cô gái đó, khiến cô ta mang thai và huấn luyện cô ta. (Amazing Yui)","lastmod":"2025-03-26","duration":"2:09:09","url":"/play/19033693.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDYvYzhjZDA0NDY5NjFjMmIzY2U0YzEzMjlhMTc5ZjM1OWMuanBn.cache","vod_id":19152960,"title":"Một người phụ nữ xinh đẹp trong bộ đồ bơi và bị trói bằng dây thừng đang được một người nước ngoài huấn luyện. Hắn treo cô lên và xâm hại tình dục cô, khiến cô rên rỉ và co giật.","lastmod":"2025-09-05","duration":"0:17:33","url":"/play/19152960.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDMzNjFkZWEyZDA5YjE1NTkzNjA1ZGQxNzNlOTkxMDguanBn.cache","vod_id":19197432,"title":"Người mẫu Đài Loan Ash, sinh những năm 2000, nổi tiếng với các video sex riêng tư, trong đó có một video quay cảnh một con chó cái được huấn luyện để dọn dẹp tinh dịch trong khi chờ chủ nhân trở về nhà.","lastmod":"2026-05-07","duration":"0:11:20","url":"/play/19197432.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMDc5ZjExYTMzYjE1MWU1NzkxYTA0ZjdkMTg0YzZkOGMuanBn.cache","vod_id":19199576,"title":"Đoạn hội thoại rõ ràng về việc một gái điếm hạng sang bị trói và lạm dụng tình dục theo kiểu bạo dâm.","lastmod":"2026-05-17","duration":"0:31:05","url":"/play/19199576.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYWQzODFjNWZiNTg0MGUzMDViNTZmNDk0ZDdmNjkzMDQuanBn.cache","vod_id":19087759,"title":"[Bạn Gái Thời Trung Học Của Tôi] Phần 1: Thuần Hóa Cô Bạn Gái Ngây Thơ Của Tôi, Đối Thoại Rõ Ràng và Hấp Dẫn","lastmod":"2025-03-26","duration":"0:25:46","url":"/play/19087759.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjkzOTZkNDY0Y2FhOGUyOGM2NzhkYjRlYjdiMzdiMjAuanBn.cache","vod_id":19071281,"title":"[Ngày lễ tình nhân màu hồng] Hóa trang thành Bạch Hổ của Azur Lane, một màn cosplay vừa đáng yêu vừa \"xấu hổ\", và một giải thưởng bốc thăm may mắn...","lastmod":"2025-03-26","duration":"0:17:25","url":"/play/19071281.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMTA3NDJjYzU0MDgwODAwMGJmZTczYTc3YjkxYTUwNmMuanBn.cache","vod_id":19034455,"title":"PPPE-064 [Lý do anh ấy cưới mẹ tôi là vì tôi] Chuyến đi về quê một tuần của vợ tôi; dạy dỗ cô con gái riêng ương bướng, ngực nở nang; Yumi Shion","lastmod":"2025-03-26","duration":"1:59:24","url":"/play/19034455.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGY4MmM4OGZkYTk1YWJmNzI0NjVjYTBmNWZjZjU5MWUuanBn.cache","vod_id":19069230,"title":"Chương trình huấn luyện RBQ 1 - Phát triển ban đầu của âm vật và điểm G 1","lastmod":"2025-03-26","duration":"0:27:28","url":"/play/19069230.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTYvMWUwNjZlODUzNzYyN2Y2ZGYxMjc1Njk1ZGIxMjBiODYuanBn.cache","vod_id":19159540,"title":"Bạn nên làm gì khi thèm đồ ngọt? Đây là lần đầu tiên chàng trai điển trai và cô gái xinh đẹp này tương tác trên livestream.","lastmod":"2025-10-15","duration":"1:30:48","url":"/play/19159540.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNTQyMTEyYWVkYTA1MDY5NDgyNmNhMDFhOGZiZjBmNGYuanBn.cache","vod_id":19184975,"title":"Thông tin bị rò rỉ về một nam mại dâm tên Dong Ge và quán bar/trường dạy mại dâm của anh ta, bao gồm nhiều tư thế, màn quan hệ bằng miệng sâu và tát trước gương.","lastmod":"2026-03-07","duration":"0:19:55","url":"/play/19184975.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2IwNDZmNWJjMzlhMDgwMGQ2ZDUxZWI1YjY3NDU0N2YuanBn.cache","vod_id":19126925,"title":"MSD049_Kỷ luật một cô hầu gái xinh đẹp: Quan hệ tình dục nồng nhiệt sau khi xác nhận cô ấy đã ướt át_Trang web chính thức.","lastmod":"2025-03-26","duration":"0:36:22","url":"/play/19126925.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDA3ODkyNWNlMTY0MjMzOWQ3MDQ5OGNiMWI1NGQ2ZWYuanBn.cache","vod_id":19027842,"title":"Ngực trần hoàn toàn, salon nam, Tiểu quỷ kiểm soát xuất tinh, Miyanishi Hikaru","lastmod":"2025-03-25","duration":"2:03:33","url":"/play/19027842.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZmYzNWZjMDBlOWFiNDkwNTNjODY5YzQ2ODRlMjE3ZGEuanBn.cache","vod_id":19122771,"title":"Một cô gái xinh đẹp với vẻ ngoài thanh tú, đôi chân dài trong chiếc vớ đen, dang rộng đùi để lộ vùng kín màu hồng và liên tục xoa bóp âm vật của mình.","lastmod":"2025-03-26","duration":"1:11:28","url":"/play/19122771.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDA4MGM0ZjYyMjg2NzIzOTUzYzIyMzQzMDljNDQxN2IuanBn.cache","vod_id":19184792,"title":"Một vụ việc đang gây xôn xao trên mạng liên quan đến một phụ nữ bị hành hung khi đang làm việc tại một cửa hàng mỹ phẩm; quần áo của cô bị xé rách, ngực bị lộ ra, vụ việc quá bạo lực; cô bị kéo lê trên người; và điều đáng ngạc nhiên là, cô ấy khá xinh đẹp.","lastmod":"2026-03-06","duration":"0:10:20","url":"/play/19184792.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTU1MGNhZGY3OWQyMmRhZTYzYjkwODRkMzU2MTgwNDkuanBn.cache","vod_id":19041544,"title":"Hình dáng người phụ nữ ngày càng đầy đặn, trưởng thành hơn, cùng tư thế xấu hổ của vợ và mẹ tôi, đã khơi gợi ham muốn trong tôi. (Ayano Kato)","lastmod":"2025-03-26","duration":"1:34:04","url":"/play/19041544.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMWY2ZjgwNDZmNGVmNjk4OGJkZDI2ZDE2MzM0YjI3YjMuanBn.cache","vod_id":19184207,"title":"\"Này, nhìn kìa. Đây là ngực của cô giáo!\" Một thực tập sinh giáo dục giản dị, khiêm tốn, người mới làm việc ở đó được hai tuần, đã bất ngờ để lộ ngực khi ở một mình với một học sinh. (CAWD-926)","lastmod":"2026-03-03","duration":"2:31:05","url":"/play/19184207.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMmViMjQyMTVlMGY4ZGQ5NmVkNDkxMjQxZGM2N2JhMjkuanBn.cache","vod_id":19028316,"title":"Mizuhara Misono, một cô giáo xinh đẹp nhưng hư hỏng, hàng ngày bị một người đàn ông trung niên sờ mó và sàm sỡ bộ ngực lớn của mình.","lastmod":"2025-03-25","duration":"2:35:01","url":"/play/19028316.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvZDNlMTJiNGI4MGRmZmRjNjZkZjQ5N2ViYTk2OGExMzIuanBn.cache","vod_id":19209466,"title":"Sự thống trị của một người phụ nữ lẳng lơ tột độ: một người phụ nữ đã kết hôn liếm chân, dây xích chó, quan hệ tình dục không an toàn và bị xâm hại tình dục.","lastmod":"2026-07-20","duration":"","url":"/play/19209466.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZGYyZTJhYzJkYjllYmI4ZTk1NThjZDEzMWVmNDY3MzIuanBn.cache","vod_id":19194373,"title":"Độc quyền. \"Huấn luyện khắc nghiệt\" của Rio Kuriyama - Người đàn ông từng là sư phụ của cô, Rio Kuriyama, Madonna.","lastmod":"2026-04-22","duration":"2:02:00","url":"/play/19194373.html"}]},
videoTitle: 'EVIS584 Sự thống trị và phơi bày đáng xấu hổ',
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=/`;
}
};
}