Vụ cưỡng hiếp thực sự của hai nam sinh cùng lớp đã mời một nữ sinh đến phòng chơi mạt chược_chúng đã cưỡng hiếp cô ấy một cách dã man_quần áo bị xé nát","lastmod":"2026-07-11","duration":"22:58","url":"/play/19161484.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWNhZTU3MjVkODRlZGZiYjE2MTMzODEzYTljYTFhMzkuanBn.cache","vod_id":18941082,"title":"Người mẫu SWAG Đài Loan 'Mio' sở hữu thân hình đáng yêu và đầy tương phản khi ở trên giường; người hâm mộ đặc biệt tìm đến tôi để được hướng dẫn và đào tạo về kỹ năng phòng the.","lastmod":"2025-12-14","duration":"00:16:24","url":"/play/18941082.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWE5YmY5ZTE3NTFhNTRjNzRhNGI2N2Q2OTEzZjlhNTQuanBn.cache","vod_id":18973486,"title":"FC2PPV 3280777 [Quay phim cá nhân] Bộ mặt thật lộ diện: \"Mayumi, 30 tuổi\" Người phụ nữ đã kết hôn xinh đẹp và dâm đãng, phong cách nổi bật, 4P với dương vật cực khủng!! Không dùng bao cao su, xuất tinh lên mặt rất nhiều.","lastmod":"2025-12-14","duration":"01:09:53","url":"/play/18973486.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDY1MWRhMTg4MjY3NGVhMzVmMjU2MTZlZjk5ODdjOTAuanBn.cache","vod_id":18975098,"title":"[Phụ đề tiếng Trung] SSIS-715 Tôi đã yêu cô sếp xinh đẹp, giỏi giang của mình, và tôi là bạn trai của cô ấy, đáp ứng mọi nhu cầu tình dục của cô ấy mọi lúc, mọi nơi.","lastmod":"2025-03-23","duration":"01:58:55","url":"/play/18975098.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWU4YTRlZjYyOWNiOGFjYzQyZDA5MWMyNGVjMmQ4ZTkuanBn.cache","vod_id":18970667,"title":"FC2PPV 3266667 [Đồ ngủ ★ Monashi] Đồ ngủ ♥ Đồ ngủ gợi cảm, sự lựa chọn hoàn hảo cho đầu hè ♥ Cười lên nào","lastmod":"2025-12-14","duration":"00:53:38","url":"/play/18970667.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWEzZTg3ZTZjNDhlNGMwYzZkMDg2YzJmMjA1YmI0MGYuanBn.cache","vod_id":18983231,"title":"[Không kiểm duyệt] HMN-356 Một buổi hẹn hò với một người đàn ông lớn tuổi mặc yukata và đồng phục. Ông ấy là một người đàn ông hào nhoáng hay một người bình thường? Bạn thích kiểu nào hơn? Các chú rất nghiêm túc.","lastmod":"2025-03-23","duration":"01:57:57","url":"/play/18983231.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTMyYWY0Y2UzYTdkNTI4MGUyODJjZjMwMDU4NDAwYTIuanBn.cache","vod_id":18977551,"title":"[Phụ đề tiếng Trung] MIDV-370 \"Tôi đã xuất tinh rồi!\" Cô gia sư riêng quyến rũ của tôi tiếp tục thủ dâm cho tôi ngay cả sau khi tôi nói rằng tôi sẽ không xuất tinh.","lastmod":"2025-12-14","duration":"02:01:05","url":"/play/18977551.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjhiNzU5MjkxZWY0NWZhNWNjMGFjYmI0MGU3MjZhZGMuanBn.cache","vod_id":18966606,"title":"SVDVD-942 Thật đáng xấu hổ! Lén lút tấn công một cô gái nghiệp dư bằng máy rung cùng bạn trai của tôi! 22. Một studio gương ma thuật đặc biệt được thiết lập trong một quán rượu bình dân.","lastmod":"2025-12-14","duration":"04:07:06","url":"/play/18966606.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWY4MzM4MWU2OTExMmNlMWVlYjRkYThiOWMyZmQ1ZDcuanBn.cache","vod_id":18955007,"title":"[Phụ đề tiếng Trung] NACR-596 Tôi thích nuốt tinh dịch! Một cô gái lẳng lơ tự do! Mayu Horizawa","lastmod":"2025-12-14","duration":"02:05:24","url":"/play/18955007.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDRjNWU0M2I1MmYwZTBiMjIwODljNDg5NDllOWMzZWIuanBn.cache","vod_id":18991783,"title":"300NTK-146 \"Mei lông lá\", một mỹ nhân váy ngắn đến từ câu lạc bộ quần vợt, sở hữu khả năng rung âm đạo tuyệt vời! Hãy học những điều cần thiết của tình dục nhập vai! Kẹp chặt âm hộ của cô ấy bằng vòng mông tuyệt đẹp của bạn! Phơi bày điểm yếu của cô ấy—núm vú! Một video góc nhìn người thứ nhất về một mỹ nhân quyến rũ nhưng bị khuất phục!! Số 301","lastmod":"2025-12-14","duration":"01:04:11","url":"/play/18991783.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjdhZjg4MDZhOWIzNjg2Y2EwMGE2MDMwNDdlN2JlYjYuanBn.cache","vod_id":18977654,"title":"Pacopacomama Pacopacomama 062423_868 Một người phụ nữ đã kết hôn xinh đẹp và quyến rũ đã bị cưỡng hiếp một cách triệt để. Hiroko Takenaka","lastmod":"2025-12-14","duration":"00:58:30","url":"/play/18977654.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjEvYTdkYWFiYzFlMTE3NGFiNThhZDE4ODZhZGMwZmJlYmYuanBn.cache","vod_id":19030242,"title":"Một nữ sinh viên đại học xinh đẹp và quyến rũ đến từ một trường đại học nọ đã bị quay lén cảnh quan hệ tình dục với bạn trai, và những đoạn băng này đã bị rò rỉ sau khi họ chia tay. Mặc dù vẻ ngoài có vẻ ngây thơ, cô ấy lại vô cùng dâm đãng trên giường, rên rỉ và la hét trong lúc quan hệ!","lastmod":"2025-04-21","duration":"12:32","url":"/play/19030242.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9pYy4xNTUyNTAyMTQudG9wLzIwMjYwMjIwL1RmNFV4amRxLzEuanBn.cache","vod_id":19144567,"title":"Cô gái 19 tuổi điều hành một cửa hàng bán cơm hộp giao tận nhà bị những người lao động chân tay biến thành búp bê tình dục bằng cách sử dụng thuốc gây mê. Anh trai ruột đáng tin cậy của cô cũng là nạn nhân của sự lạm dụng này. (START-431)","lastmod":"2026-02-21","duration":"02:14:25","url":"/play/19144567.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODJkNzNmOTI2NmFkMjdlMzM1MjcyYjY0Zjg4NTI3OGQuanBn.cache","vod_id":18987908,"title":"SY-189 Núm vú hồng…Con gái thật tuyệt vời. Cô giáo Kirishima Leona, 22 tuổi, cao 148cm…(Nghiệp dư, phòng bốn chiếu rưỡi, xuất tinh không che)","lastmod":"2025-03-23","duration":"02:24:34","url":"/play/18987908.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MDMvYzNlNmQzZjAwZDFmNTQ3M2IzMWRjMzNkY2IzY2UyNzEuanBn.cache","vod_id":19031953,"title":"Hai cô gái đang phát trực tiếp; họ rất gợi cảm và có vòng một lớn.","lastmod":"2025-05-03","duration":"20:22","url":"/play/19031953.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvZWE1YzczNDhkOGViOTBlZmZlMWY0NjZmOGUwZTVmOGIuanBn.cache","vod_id":19067320,"title":"PtoM quan hệ tình dục với một cô gái xinh đẹp tuyệt trần! Hazuki Mai 10musume_010824_01","lastmod":"2025-12-14","duration":"52:12","url":"/play/19067320.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWExNmFmZmY5MDk5YWYyNGIzZTQ0Y2RjNWE0M2EwOTIuanBn.cache","vod_id":18967253,"title":"Một cô gái trẻ xinh đẹp với thân hình tuyệt vời đang chờ được khám phá; núm vú của cô ấy vẫn còn thụt vào trong, và cận cảnh vùng kín cho thấy nó vô cùng hồng hào và sạch sẽ.","lastmod":"2025-03-22","duration":"01:10:11","url":"/play/18967253.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjFlMzBjZTc0MGZmY2Q2NjgzZTlmM2Y0OTY0ZDE0ZWUuanBn.cache","vod_id":18994752,"title":"Lý Tần trong bộ váy đỏ không che chắn, đầy đam mê.","lastmod":"2025-12-14","duration":"09:10","url":"/play/18994752.html"}]},
videoTitle: 'FC2PPV 3172880 [Không che] Khi cô gái có vẻ thân thiện này cởi bỏ quần áo, cô ấy để lộ thân hình xinh đẹp, quyến rũ và gợi cảm!',
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=/`;
}
};
}