Sự sỉ nhục của nữ giáo viên bánh trái cây trong khuôn viên trường ATID-309","lastmod":"2026-07-11","duration":"12:39","url":"/play/19162840.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTUvMjViM2RiNDJkMWQ1N2I2NzFmYTUwODgwNWQ1NDk1YWIuanBn.cache","vod_id":19057903,"title":"Nữ thần ngực khủng Lan Meier, người Đài Loan, diện tất đen quyến rũ một người giao hàng và quan hệ tình dục không dùng bao cao su, bị anh ta xâm nhập một cách thô bạo cho đến khi cô xuất tinh bên trong.","lastmod":"2025-10-14","duration":"08:04","url":"/play/19057903.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2MwYmVmOGQxZGYzZDA4MjhiZDNjYWE5ZWZhODQ4ODIuanBn.cache","vod_id":19000217,"title":"Cảnh quay từ phía sau cho thấy một người mẫu nữ mặc quần tất đen cao cấp.","lastmod":"2025-03-23","duration":"29:47","url":"/play/19000217.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MjcvMmZkZDgyOTJjZWZiY2NlZjQwNTk0YzVmZjI1OTRkNDQuanBn.cache","vod_id":19035281,"title":"Người bình luận, một nữ giáo viên không thể thay đổi bản chất của mình và đã đăng ảnh khỏa thân, thậm chí còn đi xa đến mức quấy rối chính học sinh của mình.","lastmod":"2025-05-27","duration":"11:57","url":"/play/19035281.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjA3OWVmNmNjN2Y4OGY5NjNjOTBhMWI5YjVmZjFjMWQuanBn.cache","vod_id":18950459,"title":"Một màn quan hệ tình dục 4 người đầy kích thích với hai người phụ nữ lớn tuổi quyến rũ đang dạy dỗ một cô gái trẻ hư hỏng và một cô gái dễ thương, ngây thơ trên giường, đang say đắm trong chuyện chăn gối. Người phụ nữ lớn tuổi mặc quần tất đen và đồng phục để lộ khuôn mặt khi được người đàn ông trẻ tuổi mút dương vật. Nhiều tư thế khác nhau được sử dụng trong màn quan hệ mãnh liệt.","lastmod":"2025-12-14","duration":"01:02:03","url":"/play/18950459.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYTg5NjYyYzFlNzdhMDE0YzA3MmEyMTMzOTgyNmY0NWYuanBn.cache","vod_id":19163911,"title":"Bộ đồ hầu gái bằng lụa đen với bộ ngực to tự nhiên, rên rỉ, siêu gợi cảm, điểm kích thích thủ dâm cực cao","lastmod":"2026-07-11","duration":"19:50","url":"/play/19163911.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzRmOWFhZDBiNjczNDRlZjY1MThmMjQ0MzRkYjgzMzQuanBn.cache","vod_id":19141236,"title":"Cô giáo gợi cảm trong tất đen trực tuyến","lastmod":"2026-02-02","duration":"11:10","url":"/play/19141236.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGI1ZWJjNjhhZDA2YzlkNzlmOGI5ZWY3ZTNkOTgxMDEuanBn.cache","vod_id":18945948,"title":"Một người phụ nữ tóc ngắn mặc đồ đen thay sang nội y xuyên thấu và dùng đạo cụ để tự thỏa mãn. Cảnh quay cận cảnh cô ấy trong tất đen và máy rung được chiếu; rất quyến rũ. Đừng bỏ lỡ!","lastmod":"2025-12-14","duration":"00:43:14","url":"/play/18945948.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWJlOGVhZTU1ZmQ3NDMzNWViZmNlZWM2MjQwODUwZTAuanBn.cache","vod_id":18930656,"title":"Một buổi hẹn hò với một người đẹp mảnh mai, thanh lịch đến từ trường Cao đẳng Thương mại Giang Tô, diện quần tất đen, giày cao gót, đeo kính và búi tóc cao. Cô ấy toát lên vẻ quyến rũ trưởng thành, đẳng cấp. Chàng trai, một người hâm mộ phụ nữ trưởng thành, lập tức đè cô xuống giường, khiến cô la hét và kêu lên: \"Chồng ơi, anh tuyệt vời quá!\" (Phiên bản gốc 1080P).","lastmod":"2025-12-14","duration":"00:22:59","url":"/play/18930656.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTI5MTZhNTc5NTViMGY5MTdlZGM0Zjc1N2U4MDljMTUuanBn.cache","vod_id":18964785,"title":"Cô gái quyến rũ như nữ thần này khiến tôi lập tức cương cứng. Cô ấy mặc quần tất đen và giày cao gót, để lộ hoàn toàn khuôn mặt, và dùng miệng để phục vụ dương vật của chàng trai. Khả năng nuốt trọn dương vật của cô ấy thật tuyệt vời; cô ấy khiến anh ta mút và chơi đùa với âm đạo của mình, điều đó cực kỳ kích thích.","lastmod":"2025-12-14","duration":"02:47:12","url":"/play/18964785.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzdmZGMwNTMzNGE2NzlmMmFiODUwNWJhYWRlNThiODEuanBn.cache","vod_id":18958051,"title":"SOE-355 Cô giáo bị xâm hại - Nỗi nhục nhã không thể tránh khỏi - Yuma Asami","lastmod":"2025-12-14","duration":"01:58:56","url":"/play/18958051.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTJkOWE5MmI4YTVlZTZjNjIyZjlkNDhkYTc0NDNlYmUuanBn.cache","vod_id":18946959,"title":"✿Nơi làm việc quyến rũ 7.28✿Dịch vụ khách hàng bán hàng hàng đầu tại nơi làm việc: Thủ dâm bằng máy rung, Mông căng tròn, Hở đáy quần, Vớ đen, Cực khoái run rẩy, Tiểu không tự chủ, Lỗ mật ong, Co thắt âm đạo, Xuất tinh rõ ràng, Khoái cảm cực đỉnh","lastmod":"2025-12-14","duration":"00:48:05","url":"/play/18946959.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTg1MzI2YjE2MDg0MzFhNTc2NDJmNzcwMDY0MGNmYzQuanBn.cache","vod_id":18960380,"title":"[Phụ đề tiếng Trung] SSIS-566 141 Cực khoái mãnh liệt! 5500 cơn co thắt! 1910cc xuất tinh! Một người đẹp với vòng một tuyệt mỹ thức tỉnh ham muốn của mình—cơn co thắt dữ dội đầu tiên.","lastmod":"2025-12-14","duration":"01:58:29","url":"/play/18960380.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTljY2ViMjNhM2ExMGUyMmYxMzE5YTY3N2Q1ZGI0MjcuanBn.cache","vod_id":18961234,"title":"Một phụ nữ trẻ đã kết hôn đoan trang, mặc quần tất đen, để lộ mặt, thực hiện hành vi quan hệ tình dục bằng miệng và bằng chân lên dương vật của anh trai mình. Cô ấy say đắm chiếm vị trí trên, xoa bóp và rên rỉ với vẻ mặt quyến rũ, nhào nặn ngực mình và tận hưởng những cú thúc nhanh của anh trai.","lastmod":"2025-12-14","duration":"00:23:33","url":"/play/18961234.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTZmNmE5NzYzNGYwZDlhZDExZWJjMzRmNDhkNjNjZTAuanBn.cache","vod_id":19140816,"title":"Một người phụ nữ gợi cảm với tất đen và vòng mông đầy đặn để cho một kẻ biến thái đeo mặt nạ cưỡng hiếp cô ta.","lastmod":"2026-01-29","duration":"31:57","url":"/play/19140816.html"}]},
videoTitle: 'AI-Jing Tian-Cô giáo gợi cảm với tất đen đang xuất tinh',
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=/`;
}
};
}