Cô giáo trong trắng bị học sinh cưỡng hiếp dã man! Từ cực khoái e thẹn đến dục vọng tột độ và sự đầu hàng hoàn toàn [LunaRoulette]","lastmod":"2026-07-11","duration":"","url":"/play/19244949.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2FkMDI3YzAyODA0ZWRhMzVjMjA3OTE5ZTU0YjA4NTIuanBn.cache","vod_id":19133801,"title":"NPS450 - Được lựa chọn kỹ lưỡng! Nếu bạn đủ khả năng, hãy mua cả triệu! Hãy thử xem anh chị em của bạn có thể hào hứng không! Chị gái tôi (một cô gái trầm cảm, thích tự hành hạ bản thân) và anh trai tôi (một người đàn ông nam tính) đều có ham muốn tình dục rất cao.","lastmod":"2025-03-29","duration":"","url":"/play/19133801.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDdkZjliNDdkY2UzNWJmZDU0M2VkNjRmYWUxMGEwYzAuanBn.cache","vod_id":19046927,"title":"Một cô gái xinh đẹp với mái tóc buộc hai bím, mặc váy đỏ và đi tất, đang khoe vẻ gợi cảm của mình một cách vô cùng quyến rũ. Đừng bỏ lỡ nếu bạn thích!","lastmod":"2025-03-28","duration":"","url":"/play/19046927.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODM0NjUzODc3MDhjMTljMTRhYmQ1ZGMwMWQ0ZmE1ZTkuanBn.cache","vod_id":19040382,"title":"Một cô gái xinh đẹp ăn dưa chuột, sau đó tự thỏa mãn trong khi đeo bao cao su. Âm đạo của cô ấy săn chắc, hồng hào và không có lông. Quả dưa chuột nhấp nhô ra vào, và cô ấy rên rỉ nhẹ nhàng – rất quyến rũ và gợi cảm. Đừng bỏ lỡ nếu bạn thích!","lastmod":"2025-03-28","duration":"00:56:38","url":"/play/19040382.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MDQvYjEwZDIzYzg2NTdmN2I4YzU3Njk3NGEzNmE3ZTVlMDIuanBn.cache","vod_id":19188052,"title":"RPIN085 Một nữ nhân viên thẩm mỹ viện mảnh mai, ngực khủng phục vụ bạn một cách đầy đam mê! Cô ấy thực hiện quan hệ tình dục bằng miệng, mút mạnh mẽ một dương vật to lớn và thúc mạnh mẽ, dẫn đến một cực khoái cuồng nhiệt, co giật.","lastmod":"2025-08-03","duration":"01:55:21","url":"/play/19188052.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDgxMTQxZjZjMmM1OGUzMWNhOWJjMzY4OTVjNmQ2MDYuanBn.cache","vod_id":19042938,"title":"JKSR-423_B 10:00 AM Chuyện gì đã xảy ra ở trường... Những trải nghiệm bi thảm của năm cô gái","lastmod":"2025-03-28","duration":"01:36:05","url":"/play/19042938.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGEwYWYzNDc1YzQ3NmFhZjk4NThhZmRjY2QwODk3NDcuanBn.cache","vod_id":19128414,"title":"Ẩn sau vẻ ngoài ngọt ngào là một trái tim dâm đãng, máy móc – thật lẳng lơ!","lastmod":"2025-03-29","duration":"47:59","url":"/play/19128414.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTkwNzQ3YjhlYTU0NDkwMDZiMTg1MmU4YWIxODViZDYuanBn.cache","vod_id":19091759,"title":"STARS-780 Luôn Thèm Quan Hệ Tình Dục Bằng Miệng! Nếu bạn trai phát hiện ra ham muốn tình dục chưa được thỏa mãn của cô, cô sẽ bị bắt quả tang đang quan hệ tình dục bằng miệng với anh ta ở những nơi nguy hiểm—cô bạn gái trẻ tuổi, dâm đãng này là Kudo Yura.","lastmod":"2025-03-29","duration":"02:08:43","url":"/play/19091759.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmU0MjEyODZlZTZkMjUwMjBkNzU2ZWIzYmExZGUzOWMuanBn.cache","vod_id":19140336,"title":"MD0097 Thợ sửa ống nước cưỡng hiếp một cô gái trẻ lẳng lơ. Cô gái trẻ gợi cảm.","lastmod":"2025-03-29","duration":"28:09","url":"/play/19140336.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDc1NTViYWI3MWY0ZjNhNzJiYmZlYTkwMmNiMTdhODEuanBn.cache","vod_id":19049776,"title":"Một cô gái nhỏ nhắn, xinh xắn với vòng một nhỏ đang học khiêu vũ, trông rất quyến rũ trong bộ dạng khỏa thân. Cô ấy đứng dạng chân và cúi người xuống, mái tóc khá dày! Rất cuốn hút, đừng bỏ lỡ nếu bạn thích!","lastmod":"2025-03-28","duration":"","url":"/play/19049776.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODZjNGY5ZjZiMzEyY2FhNjFmYjg3ZmRjNzBjMTY5ZTUuanBn.cache","vod_id":19169262,"title":"SPRD1194 Thế giới này chỉ toàn đàn ông và phụ nữ ~ Cô vợ dâm đãng quá mức, Hiraoka Riu Eiko.","lastmod":"2025-03-29","duration":"02:00:54","url":"/play/19169262.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYWQ0N2ViZTM4OTYyODM5OGM5YjVmMTI5Y2EwM2I2NTIuanBn.cache","vod_id":19211498,"title":"Một nữ thần quyến rũ, chân dài tham gia vào màn tự sướng đầy đam mê với chai bia cùng một cô gái khác sau khi uống rượu!","lastmod":"2025-12-26","duration":"0:38:49","url":"/play/19211498.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmNmYTg1ZmY4ZDg3NGNlMzZiNDYyMmNjODJmYmNlYjEuanBn.cache","vod_id":19151934,"title":"HMN-139 Người mới: Cô ấy trông có vẻ lạnh lùng, nhưng những cú thúc của cô ấy lại vô cùng dâm đãng! Một nữ sinh viên đại học năng động đã đăng ký tham gia đóng phim người lớn vì muốn được quan hệ tình dục đến khi lên đỉnh! Tosaki Izuka","lastmod":"2025-03-29","duration":"01:56:57","url":"/play/19151934.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMWQ5NmFiYmI4YmRmN2FhNWQxOTlkMmJlMGRhOGQ4ODAuanBn.cache","vod_id":19213867,"title":"Một nữ sinh lẳng lơ quyến rũ một thầy giáo nam, và họ có một bữa tiệc tình dục nồng nhiệt trong một chiếc xe thể thao.","lastmod":"2026-01-09","duration":"0:27:57","url":"/play/19213867.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTdkYTk1OTJlNjhkYzUwZTEwZWE3ZjliNWNmODFmNjEuanBn.cache","vod_id":19118452,"title":"[Đánh giá HD] dnjr-078 Momone Hamabe, một cô giáo ngực khủng thích những cậu bé dễ thương.","lastmod":"2025-03-29","duration":"01:57:26","url":"/play/19118452.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYmE2ZGViOGE4YTA4NTEyYTU1YmVkYWE4NmYyNWMwMmYuanBn.cache","vod_id":19238954,"title":"Để trả nợ, người vợ xinh đẹp Chun Dai đã dâng hiến thân xác mình cho bố chồng! Cô bị người bố chồng dâm đãng cưỡng hiếp dã man, thân thể dâm đãng của cô trải qua nhiều cực khoái!","lastmod":"2026-06-04","duration":"1:56:54","url":"/play/19238954.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2Y3NmM3NDY5ZDk1YTY0MDMyZTc2NmM4ZmJlMDEzNDUuanBn.cache","vod_id":19158312,"title":"LUXU1139 TV Cao Cấp 1128 Một nữ huấn luyện viên xinh đẹp tuyệt trần với thân hình mảnh mai! \"Tôi muốn bị tra tấn dã man...\" Một lượng lớn chất lỏng tràn ra từ chỗ kín của cô, không thể kìm nén ham muốn đang dâng trào! Cô tham lam đưa dương vật vào sâu trong cổ họng, và khi nó thâm nhập vào vùng kín ướt át của cô, cô đã đạt được nhiều cực khoái! Một nữ huấn luyện viên dâm đãng thỏa mãn những hành vi tình dục trụy lạc theo bản năng của mình!","lastmod":"2025-03-29","duration":"01:14:23","url":"/play/19158312.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGZhNGYwM2RiNjQxZTk2NjhkNmZhYWM4NDdhZGJiNWUuanBn.cache","vod_id":19100708,"title":"[Không che] 534POK-059 Lộ diện khuôn mặt [Quay phim riêng] Cực kỳ hiếm - Những câu chuyện kỳ lạ với một cô gái mặc đồng phục và quần tất đen - Quan hệ tình dục với một cô gái có đôi chân đẹp mà tôi gặp trên mạng xã hội","lastmod":"2025-03-29","duration":"01:04:06","url":"/play/19100708.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmM4NDFmOTQ4NGY3OWI2MmM4OTUxZDViNzQ4OTcyYTguanBn.cache","vod_id":19042121,"title":"Ảnh tự sướng cao cấp - Một người đẹp quyến rũ yêu thích thử thách và sự hồi hộp có một cốt truyện xoay quanh việc bạn trai và bạn bè của anh ta đang sửa sang một ngôi nhà, và cô ấy đã quan hệ tình dục với anh ta ngay trước mặt bạn bè anh ta. Người đẹp thực sự rất thích điều đó!","lastmod":"2025-03-28","duration":"00:06:17","url":"/play/19042121.html"}]},
videoTitle: 'Tôi yêu núm vú giả! (Cô gái hư hỏng Juri_t - Haruka Juri)',
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=/`;
}
};
}