Trần nhà chất lượng cao của Pink Lover - Lần xuất hiện đầu tiên của Little Lolita: Khuôn mặt xinh đẹp được hé lộ! Mặc trang phục nữ tính, làm những điều dâm đãng nhất, thâm nhập từ phía sau vào ngực, Little Pink thăng thiên.","lastmod":"2026-07-11","duration":"15:22","url":"/play/19152935.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjU3MzAxZjQ1NWMyNTRjMTA4OTQ1MzY2YTI5MGE5M2MuanBn.cache","vod_id":18944432,"title":"Một người phụ nữ lẳng lơ mặc quần tất hở đáy đang đi thuyền thì bắt đầu quan hệ tình dục ngay trên thuyền.","lastmod":"2025-03-19","duration":"39:35","url":"/play/18944432.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjdlYTJiMjA4M2FiMDc2Zjk4N2Y1NmE1MzQ4MGVlZjMuanBn.cache","vod_id":18945514,"title":"BONY-052 Sự Sụp Đổ của Một Cô Giáo Tiểu Học! Cô ấy cho bạn trai vay hàng triệu yên, nhưng anh ta bỏ trốn, nên cô ấy đã phải tuyên bố phá sản. Cuộc sống thật khó khăn, em muốn anh xuất tinh vào trong em.","lastmod":"2025-03-19","duration":"02:46:23","url":"/play/18945514.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTI5ZGY2ZjNkNTMzMmU4NmI4NGVlZjNlOGMzYjQ3NmEuanBn.cache","vod_id":18959869,"title":"NXG-438 Khi tôi cố gắng ép mẹ của bạn tôi vào một mối quan hệ không phù hợp...","lastmod":"2025-03-19","duration":"02:00:35","url":"/play/18959869.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvM2M2ZWI1Nzg0YjllZTY0YWY2YjRjOWFmYzA2NTgzOGIuanBn.cache","vod_id":18928448,"title":"HEYZO-3028-FHD-Tôi đã mời cô bạn gái có vòng một tuyệt đẹp đến nhà mới của mình để ăn uống và làm tình! - Nao Matsumura","lastmod":"2025-03-19","duration":"51:51","url":"/play/18928448.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjE2ZGQ0NGFkOWEzMmMyODI0MWM0Mjg1OGMzZmM4YTUuanBn.cache","vod_id":18950230,"title":"Loạt phim \"Top Flower\" ghi lại cảnh gặp gỡ tại khách sạn với một người phụ nữ trưởng thành cao ráo, chân dài, thể hiện kỹ năng oral sex trước ống kính, cận cảnh vùng kín tuyệt đẹp của cô ấy, và nhiều tư thế đứng và cưỡi ngựa khác nhau.","lastmod":"2025-03-19","duration":"58:01","url":"/play/18950230.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjhjZDlmNWZkNzlkMGRjZjI0YzIzYzY3NWY0YjQ0ZWYuanBn.cache","vod_id":19090804,"title":"START-226 [Trại huấn luyện cuồng dâm] Tên chủ tịch câu lạc bộ chết tiệt đó thật phiền phức, vậy thì hãy tấn công bạn gái hắn ta đi (LOL) Quan hệ tình dục tập thể bí mật của các thành viên câu lạc bộ trong trại huấn luyện mùa hè","lastmod":"2025-03-19","duration":"02:10:14","url":"/play/19090804.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjM3YjY4NTkwNDg1MjIyMGFjMDk5MzViZDNiOWQ3ODcuanBn.cache","vod_id":19051110,"title":"KAGP-326 Tôi đã khoe dương vật của mình cho những cô gái nghiệp dư mà tôi quen biết! Thưởng thức thủ dâm 7 50 người 5 giờ","lastmod":"2025-03-19","duration":"04:58:13","url":"/play/19051110.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMGM0N2Y0NjBiNDNlODYzMDk3N2U2ZDAyYTBmODdiMjQuanBn.cache","vod_id":19009433,"title":"START-055 Tôi yêu thích bộ ngực trưởng thành của người bạn thời thơ ấu đến nỗi tôi đã trêu chọc đầu nhũ hoa của cô ấy ở trường suốt một năm.","lastmod":"2025-03-19","duration":"02:47:57","url":"/play/19009433.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2M4NjczMzQ1YjZmZTVkYTUxZGU4YTc3NTU0NWUzOTEuanBn.cache","vod_id":19043466,"title":"Ngay cả khi CAWD-706 có được một người bạn trai dịu dàng và ổn định... cô ấy vẫn muốn bị đối xử như một vật thể hoặc một món đồ chơi tình dục bởi một gã đàn ông tồi tệ, đối xử thô bạo với cô ấy.","lastmod":"2025-03-19","duration":"01:58:38","url":"/play/19043466.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMDMvMDUzYTlhYzg5YTI3YWU1MWZmODBkNjY4NzVjNTA2NDkuanBn.cache","vod_id":19123337,"title":"Một nữ điệp viên bí mật trong bộ đồ latex trong nhà vệ sinh công cộng để lộ vùng kín đầy đặn, quyến rũ của mình.","lastmod":"2025-10-03","duration":"03:07","url":"/play/19123337.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTc5Yzk3Mzk3ZDg4NTMwZTY0ZWRjZDQ5OTY4Mzg0ZWUuanBn.cache","vod_id":19007544,"title":"200GANA-3031 Một buổi quay phim softcore nghiêm túc, lần đầu tiên tôi đóng phim. 2041 \"Tôi không cần bạn trai!?\" Một cô gái gọn gàng, sạch sẽ làm thư ký y tế.","lastmod":"2025-03-19","duration":"01:02:30","url":"/play/19007544.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGY5YWFiN2NiYTZlOGExN2IyMTgyNzM4MWM2OWU3N2UuanBn.cache","vod_id":18924761,"title":"SIRO-4111 [Lần quay đầu tiên] [Một cô gái 20 tuổi ngọt ngào và ngây thơ] [Thể hiện vẻ mặt ngọt ngào với một chàng trai đẹp trai...] Sạch sẽ và gọn gàng, một cô gái không thể cưỡng lại được. Những giọt nước mắt ngượng ngùng... Ứng dụng AV trực tuyến → Trải nghiệm quay phim AV 1190","lastmod":"2025-03-19","duration":"01:03:08","url":"/play/18924761.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWM2YTdhZDcwODNkNmJlMGQ0ZDNiNDRjMzIyYjc3NTQuanBn.cache","vod_id":19025160,"title":"Xiao Ma Tan Hua đã sắp xếp gặp một gái gọi cao cấp, người này sau đó đã ép anh ta thực hiện hành vi quan hệ tình dục bằng miệng và nuốt trọn dương vật trong tư thế quỳ trên đất. Sau đó, anh ta bắt đầu quan hệ tình dục với cô ta trong khi giữ chặt mông cô, khiến cô gái rên rỉ liên tục.","lastmod":"2025-03-19","duration":"27:57","url":"/play/19025160.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMTNjNTlkNDY2NjY3YWY5MmY2NTc3OTUxN2NmZTdjZmUuanBn.cache","vod_id":18982633,"title":"DSVR-1090 [VR] Liếm mặt VR - Trải nghiệm liếm trực tiếp bằng lưỡi ướt - cd4","lastmod":"2025-03-19","duration":"17:02","url":"/play/18982633.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMzAvMjY0NjFiYjQyOTViOGYxMGY1YTMwOGJkZjEzNzAxNGIuanBn.cache","vod_id":19126638,"title":"[Cập nhật độc quyền] Cô bạn gái kiêu ngạo không chịu bỏ cuộc trong trò chơi múa thoát y, điều này đã khơi dậy ham muốn của bạn trai cô, dẫn đến chuyện quan hệ tình dục trên bàn ăn.","lastmod":"2025-10-30","duration":"21:23","url":"/play/19126638.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvN2E5OGI2MGY5ZGFiNjUyMzA0MzRlMzY4ZmMwOWRiNWUuanBn.cache","vod_id":19133460,"title":"IPZZ-704 “Tôi muốn em liếm tôi!” x “Tôi muốn em liếm tôi!” Bạn trai tôi không chịu liếm tôi, nên vợ chồng tôi đã bắt cô ấy liếm tôi.","lastmod":"2026-02-13","duration":"01:55:44","url":"/play/19133460.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWYxYzY4NDJjYmE0N2E1OGIwNDE4NTBkMTBkOTY4YjQuanBn.cache","vod_id":19043324,"title":"Đã chọn: Lối vào phía sau. Họ bắt đầu làm chuyện đó ngay trong ký túc xá.","lastmod":"2025-03-19","duration":"00:00:46","url":"/play/19043324.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMDUvMTE2NTM4ZjhmMTk4ZTcxOTZkZDcxNzA5ZDE5NmNiN2QuanBn.cache","vod_id":19123513,"title":"Jabami Yumeko lại thua. Lần này, cô không mặc đồ lót và bị xâm hại trực tiếp từ phía sau ở tư thế \"kiểu chó\" mà không dùng bao cao su.","lastmod":"2025-10-05","duration":"14:33","url":"/play/19123513.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjY1NjlhYjE0Y2FmMTkwN2VmODFmMzRjYzczMGFlYzkuanBn.cache","vod_id":19096869,"title":"FSDSS-967 Tôi gặp một gái điếm phơi bày bộ phận sinh dục của mình trong suối nước nóng hỗn hợp nam nữ. Tôi quá phấn khích đến nỗi xuất tinh vào trong cô ta 50 lần.","lastmod":"2025-03-24","duration":"02:03:11","url":"/play/19096869.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNGFmZmY0MWU2YjYxMGVkOGRhNWYwNTUzNmE2YTA1MzUuanBn.cache","vod_id":19143409,"title":"SQDE-027 Tôi muốn thỏa mãn dục vọng của mình! Một cô gái tè dầm và chỉ tìm thấy sự thỏa mãn khi đóng phim AV.","lastmod":"2026-03-28","duration":"01:47:39","url":"/play/19143409.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTRjMGRhYWZkM2E0YTk2MjVjNjE2MzQyYjdmN2YyMWMuanBn.cache","vod_id":19011835,"title":"MTALL-122 Alice Oteng VS Đội truy đuổi tình dục tức thì: Một cơn cuồng xuất tinh không ngừng nghỉ, không bao giờ kết thúc ngay cả khi họ không thể cử động","lastmod":"2025-03-19","duration":"02:00:32","url":"/play/19011835.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjI5YWYwNDNhNzU0NTYxZTAxYzZhMTU5Yzg2NTYyOGQuanBn.cache","vod_id":18937909,"title":"Mời bạn của bạn trai bạn tham gia cuộc chơi 3 người.","lastmod":"2025-03-19","duration":"01:17","url":"/play/18937909.html"}]},
videoTitle: 'FC2-4199480 "Lộ diện toàn bộ" "Không" "Hiện chỉ có 980 điểm" Bạn sẽ không cho bạn bè xem cái này chứ? Trực tiếp',
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=/`;
}
};
}