Cô gái đeo kính ngực khủng trả nợ cho anh trai chủ nhà bằng thân thể mình, wow, cô ấy thật sự rất to, quan hệ bằng miệng, kích thích bằng chân, thật tuyệt, đến nhà tôi chơi mạt chược đi, chúng ta cùng làm gì đó nhé, oh","lastmod":"2026-07-11","duration":"08:23","url":"/play/19128846.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjc3YjlkMDU5NGY4ODBmY2JjNzA3MjEzYzEwMjIxOTkuanBn.cache","vod_id":19036280,"title":"BLOR-216 Một nữ phục vụ quán bar xinh đẹp ở độ tuổi năm mươi, nhưng vẫn là một phụ nữ trưởng thành đầy sức sống và quyến rũ, bị một người mát xa khiêu dâm và một dương vật khổng lồ cưỡng hiếp dã man.","lastmod":"2025-03-19","duration":"02:10:16","url":"/play/19036280.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODllYWQ1MGI3NzAzN2VhYTVmZDA0ZTdhMGE4OWU2MGIuanBn.cache","vod_id":18967642,"title":"Con ả lẳng lơ đó đang được huấn luyện để bú dương vật trong khi bị chụp ảnh và sau đó bị cưỡng hiếp dã man từ phía sau.","lastmod":"2025-03-19","duration":"10:47","url":"/play/18967642.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MDcvYTNkOWEwNzlkMjZkMmM4NDJkZjAxNDBiNmYwN2NkY2YuanBn.cache","vod_id":19092668,"title":"Toàn thân nóng bừng và hưng phấn, quan hệ tình dục bằng miệng sâu, ân ái nồng nhiệt, nữ nhân viên văn phòng đeo kính, tất đen, phụ nữ trưởng thành","lastmod":"2025-08-06","duration":"07:17","url":"/play/19092668.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzA2NzczMzJhYmI0NWM2M2RiNjlkZTEwNTY4ZmMwZjguanBn.cache","vod_id":18962964,"title":"Một cô sinh viên đại học với lượng dịch âm đạo dồi dào, cô ấy đã bị tôi quan hệ và xuất tinh vào bên trong, và sau đó cô ấy thậm chí còn liếm sạch dương vật to lớn của tôi ở cuối cùng.","lastmod":"2025-03-19","duration":"21:11","url":"/play/18962964.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTJiMWZkNGY2YzE1OWNjNTNkOGFiOGQ0YTQ5ZGFmMGYuanBn.cache","vod_id":19014490,"title":"PPPE-112-C Tôi muốn được quan hệ với bộ ngực to như vậy... Dịch tiết tiền xuất tinh chảy ra... Dương vật của tôi tê cứng vì sự bóp chặt của những bầu ngực đó.","lastmod":"2025-03-19","duration":"02:51:43","url":"/play/19014490.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTY2NzNmZjAwNmRiN2UzNWQzOWNiNGYwZDU1ZTQ5NzIuanBn.cache","vod_id":19022890,"title":"Nữ sinh ngây thơ, trong sáng trong chiếc quần tất đen và bộ đồng phục nhân viên văn phòng.","lastmod":"2025-03-19","duration":"11:58","url":"/play/19022890.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzNhNjRiYWM5ZTY0M2RhZWUxY2U3NjQwZGY1MzZhODguanBn.cache","vod_id":19056850,"title":"Một nữ thần hàng đầu và hai người bạn thân nhất của cô ấy trình diễn màn phục vụ một người đàn ông béo phì, với khuôn mặt cô ấy lộ ra suốt quá trình khi cô ấy xoa bóp và tự thỏa mãn trong khi người bạn thân của cô ấy liếm dương vật của người đàn ông béo phì rồi ngồi lên đó để tận hưởng.","lastmod":"2025-03-19","duration":"13:08","url":"/play/19056850.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODdjZjFjY2M0ODRhMzI1NjY1OWJjM2Q1NTllNTI2YmMuanBn.cache","vod_id":18957916,"title":"Vớ đen hở đáy, tư thế cưỡi ngựa, động tác đứng uốn lượn gợi cảm, vô cùng quyến rũ, đừng bỏ lỡ.","lastmod":"2025-03-19","duration":"40:19","url":"/play/18957916.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWNmZDc5ZmMxMzFmOTVjOGQ3Y2Y2YjlhNzA3ODNjM2IuanBn.cache","vod_id":18975626,"title":"Đôi chân quyến rũ kết hợp với tất đen sẽ khiến bạn lập tức phải thốt lên kinh ngạc.","lastmod":"2025-03-19","duration":"43:00","url":"/play/18975626.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDNkMjIyYWIyOGQ0OWMzYmNlOWQ0OWUyYzRlMzM2YmEuanBn.cache","vod_id":19056170,"title":"Yu Nuo, một người mẫu chuyển giới người Trung Quốc mặc quần tất đen, đã bị một người đàn ông dị tính tấn công tình dục bằng cách dùng ngón tay kích thích và xâm nhập hậu môn, khiến cô rên rỉ.","lastmod":"2025-03-19","duration":"10:21","url":"/play/19056170.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjliOGEyY2UwZGEzZmEzNjM1OTc5OTBkZDM3OTk2YTQuanBn.cache","vod_id":19120628,"title":"Cặp đôi trẻ chụp ảnh tự sướng; cô bạn gái, một cô nàng lẳng lơ thích quan hệ tình dục bằng miệng, có kỹ năng \"oral sex\" tuyệt vời và cực kỳ thích ăn gà.","lastmod":"2026-05-14","duration":"14:13","url":"/play/19120628.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDU4ZDcwY2M2MGZmZDI3MWUyNmQzYWM2MzJjMTFmMzYuanBn.cache","vod_id":18939334,"title":"(Mới nhất) Cuộc chiến tình dục giữa gái điếm Quảng Châu và người đàn ông da đen. Dương vật của người đàn ông da đen này không lớn lắm.","lastmod":"2025-03-19","duration":"09:23","url":"/play/18939334.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGYxMTgzMzkzYzYzNmJmN2ZkMDIzNTgyY2ZlYjUxYzEuanBn.cache","vod_id":19000367,"title":"[Một con điếm nhỏ cảm thấy khó chịu nếu không được quan hệ tình dục trong một ngày][3] Cô ta để lộ mặt suốt và quan hệ tình dục nồng nhiệt với anh chàng, mút dương vật của anh ta và không buông ra, để anh ta liếm âm đạo và chơi với ngực của cô ấy, và thực hiện đủ loại động tác thúc đẩy!","lastmod":"2025-03-19","duration":"30:11","url":"/play/19000367.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTg4YTI3OGFkYzYyNTBlMzYxYjFmM2M2NWI5ZTg2YWYuanBn.cache","vod_id":18982809,"title":"Một nữ nhân viên văn phòng quyến rũ trong chiếc quần tất đen tự thỏa mãn tại nhà vì cảm thấy cô đơn sau giờ làm việc!","lastmod":"2025-03-19","duration":"16:55","url":"/play/18982809.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvNWVhN2Q4NzE5NmUwNjg4YTFhOWRmNWY4MWUyMzc5NmEuanBn.cache","vod_id":19106862,"title":"Mizuna Rei - ASFB-262 Bậc thầy xuất tinh nam: Tôi muốn anh tự sướng trong 4 giờ (Phiên bản Deluxe) - CD1","lastmod":"2025-12-13","duration":"04:02:52","url":"/play/19106862.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDExYTk4YWEyZDJmOGM4ZmRhYmRiNDZhOGVkMDE2Y2IuanBn.cache","vod_id":18931314,"title":"Khuôn mặt của con nhỏ lẳng lơ bị phơi bày khi nó bị một tên khốn nạn cưỡng hiếp, hắn ta đã quan hệ tình dục bằng miệng và dương vật với nó.","lastmod":"2025-03-19","duration":"32:54","url":"/play/18931314.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTAzMDEwNjBiYzM1Y2MwM2RjY2JjYzFlZjg5MWFjOGMuanBn.cache","vod_id":19035534,"title":"Anh họ tôi đã quan hệ tình dục với em họ tôi trong rừng khi cô ấy đang cho con bú; dương vật to lớn của anh ta được bôi trơn bởi sữa mẹ của cô ấy!","lastmod":"2025-03-19","duration":"04:00","url":"/play/19035534.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmIwMzJiMzc0OTkwYWY0MDdkYzU3NzFlODIzN2Q0N2QuanBn.cache","vod_id":19055379,"title":"348NTR-008【男演员的鸡巴太疯狂了,保证让她上当! ! 】性格娇小、惹人喜爱的女友(24岁,IT会计)在男友的强烈要求下出演成人影片!但当她看到男演员那根巨大的鸡巴时,她就变得完全不同了,而且非常有攻击性! !她的阴部湿透了,看起来就像一个发情的婊子,想要展示她那从未在男友面前展示过的 100% 女性面孔! ! !演员们非常激动,他们一路晋级到第二轮! ! ! NTR.net案例8","lastmod":"2025-03-19","duration":"01:25:23","url":"/play/19055379.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTk5MjJhMzU5NmNlNDlmOWE4YTE3YmVmNGE5YWI2YTIuanBn.cache","vod_id":18986130,"title":"Caribbeancom 060724-001 Tập đầu tay 91 ~ Em muốn liếm dương vật của anh, em có thể liếm hộ anh được không?","lastmod":"2025-03-19","duration":"01:01:04","url":"/play/18986130.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTJkNGZlZWUwY2U4MjJmM2Y5M2ZiYzJlOTkwMjI4MWMuanBn.cache","vod_id":18950034,"title":"Quan hệ tình dục bằng miệng và liếm dương vật trên xe buýt","lastmod":"2025-03-19","duration":"00:00:23","url":"/play/18950034.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzNlM2RlZTdjYzQwODQzZjE2NGMzNDM5MDJlNmJiY2UuanBn.cache","vod_id":19000758,"title":"[Một trận chiến 3 người đầy đam mê với em gái] Khuôn mặt lộ liễu hoàn hảo, giá trị cao, dễ thương, ngoan ngoãn và cư xử tốt, để hai anh trai lớn vồ vập cô ấy theo nhiều cách khác nhau, quan hệ từ phía sau, mông dâm đãng, quan hệ bằng miệng, dương vật to, rên rỉ cho đến khi xuất tinh!","lastmod":"2025-03-19","duration":"57:35","url":"/play/19000758.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTE0MmI3NjcwNmM1ZjhkYzkzNjYwZWVhODg5MGUyYTIuanBn.cache","vod_id":18936807,"title":"[Phim tự quay/quay lén kiểu Trung Quốc] Vớ đen và đạo cụ gợi cảm đáp ứng mọi yêu cầu của người anh trai","lastmod":"2025-03-19","duration":"21:21","url":"/play/18936807.html"}]},
videoTitle: 'Vớ đen và đôi chân xinh đẹp kẹp chặt dương vật trong sở thích cuồng chân.',
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=/`;
}
};
}