Seorang wanita yang berperilaku baik dengan tubuh yang bagus membiarkan pria itu menggosok payudaranya dan menidurinya.","lastmod":"2026-07-11","duration":"29:17","url":"/play/19117365.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTgzYTRjYzdkODdmZjQ5NTIwNDA2NzI2OTk2YzliNWMuanBn.cache","vod_id":18951798,"title":"MIZD-335 Ketegangan dan kecemasan dari pengalaman sekali seumur hidup...dan kenikmatan! Pengalaman seks pertama yang terbaik.","lastmod":"2025-03-19","duration":"03:55:56","url":"/play/18951798.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDFiNWZhY2Y5NTBmYjk1MWMzNzcxZmUyNDJjYWQwMTQuanBn.cache","vod_id":18996234,"title":"Perbudakan dan disiplin Xiao Qiqi","lastmod":"2025-03-19","duration":"40:22","url":"/play/18996234.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMTgwNTMxMjkzMDM0YjFlNjRmYWE4NTczNmZmMGU2YWQuanBn.cache","vod_id":18989070,"title":"Sebuah video milik pemilik penginapan lama di wilayah Kanto utara, KAM-181, telah bocor. Video tersebut adalah video lelucon yang menunjukkan seorang gadis cantik dibius dan dihipnotis. Kasus 03","lastmod":"2025-03-19","duration":"02:00:43","url":"/play/18989070.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjMzZjk2NzEyYjkzMDA4ZTg5NzM1ZDc4NjA5MjZjYTEuanBn.cache","vod_id":18971213,"title":"FSDSS-708: Seorang mahasiswi dikhianati oleh senior kesayangannya dan dikuasai oleh sebuah klub cinta terorganisir yang didominasi pecandu narkoba.","lastmod":"2025-03-19","duration":"02:03:29","url":"/play/18971213.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGRiMTNiMzBkMDI0MWFkYWEwZGRkNDE0YmQ0NmM2NDMuanBn.cache","vod_id":19039007,"title":"Setelah pesta perusahaan WAAA-360, saya ketinggalan kereta terakhir dan bermalam di rumah bos perempuan saya. Dia mengetahui bahwa saya mengalami ejakulasi dini dan memaksa saya untuk berejakulasi dari Jumat malam hingga Senin pagi.","lastmod":"2025-03-19","duration":"01:56:43","url":"/play/19039007.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNmIwMmFlZTM3Y2I3NTk5M2EwMGMxMDllOTFkMGE1YjAuanBn.cache","vod_id":18946685,"title":"HODV-21770 \"Bisakah kita minum sesuatu?\" Aku mabuk di bar... dan mulai berkencan dengan bos perempuanku.","lastmod":"2025-03-19","duration":"04:01:14","url":"/play/18946685.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmJmZGUyMmJlZWIyNjJhM2YwMDVkMDhlNmRmZmZjMWUuanBn.cache","vod_id":19088766,"title":"NSFS-344 Di depan bos… istriku menjadi model telanjang. Tiga belas","lastmod":"2025-03-19","duration":"02:19:11","url":"/play/19088766.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjdmM2U4NDk1ZTg1MGI5OGNjYThmMWJkMjZiNWZkMmYuanBn.cache","vod_id":19092793,"title":"Seks di hotel dengan anjing betina yang kontras","lastmod":"2025-03-19","duration":"01:50","url":"/play/19092793.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZTVhYmI0ZWRkZWE0MmMxYTkyZjJhODk0MDJmYzBlODcuanBn.cache","vod_id":18965405,"title":"200GANA-2950 Pemotretan softcore serius, pertama kalinya saya syuting. 1987 Terlibat dalam seks intens dan rakus dengan seorang wanita lembut dan cantik dalam perjalanan pulang kerja! Oh.","lastmod":"2025-03-19","duration":"01:15:07","url":"/play/18965405.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNmViODk5MWVjNWNhNGRmYjdjMGU0MDI0YzMyNzg0N2EuanBn.cache","vod_id":19069295,"title":"CHUC-112 Cumshot Office Lady's Sexual Encounter with Friend Towa (24)","lastmod":"2025-03-19","duration":"01:05:20","url":"/play/19069295.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMzg0NTYwMzY0YzJlYTcwMjM5ZmVlNTlhOWQ3MDgzMGYuanBn.cache","vod_id":19149242,"title":"Seorang istri yang selingkuh dan dikhianati istrinya berhubungan intim dengan seorang pria kaya untuk melakukan seks di dalam mobil, seks liar, deep throat, seks oral, dan dipenuhi dengan mulutnya.","lastmod":"2026-05-29","duration":"16:28","url":"/play/19149242.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTlmMWZiY2FlYjI2NDQ1NzI5YzA1MGY1MTAwODc0ZTUuanBn.cache","vod_id":19135702,"title":"#Pelacur_#Jalang_#SeksOral_Suami yang Dikhianati Membawa Istri ke Hotel untuk Mencari Pria Lajang untuk Bertiga","lastmod":"2026-02-13","duration":"02:19","url":"/play/19135702.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjgvODRiZGUxNTNkODMwZGEyYTVhYjFiMDU5ZDlmYjU0MjkuanBn.cache","vod_id":19102262,"title":"SVFLA-003 memungkinkan gadis itu menjilat area kemaluannya yang berbulu dan menandainya dengan aroma dan rasa vagina dan anusnya yang berbulu! Seks dengan menghisap bulu kemaluan membuatnya terangsang.","lastmod":"2025-04-28","duration":"04:24:16","url":"/play/19102262.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmUzZDI0NzNmZTIzYjBjNTc1NjBiMjIwYTkwNjU2N2IuanBn.cache","vod_id":18937757,"title":"[Pemilik toko makanan siap saji itu tidak mengenakan bra] Dia diam-diam memperlihatkan payudaranya saat pintu toko terbuka, meraba dan meremasnya untuk menggoda kurir pengantar makanan. Setelah pintu tertutup, dia mulai melakukan seks oral dan berhubungan seks dengan penis besar kurir itu dari belakang.","lastmod":"2025-03-19","duration":"35:04","url":"/play/18937757.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MTUvMjc2YTE3ZmVlMjMyYzZiMTkwYjJkY2I5MTY1ZmM0NDIuanBn.cache","vod_id":19150828,"title":"Payudara Besar - Seks di Dalam Mobil dengan Ejakulasi oleh Pria yang Lebih Tua di Luar Ruangan, Mendominasi Gadis SMA, Memaksanya Berhubungan Seks di Dalam Mobil, Perutnya Terlalu Besar","lastmod":"2026-06-15","duration":"34:09","url":"/play/19150828.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWNmNjBjZDIyY2ZmZmRiMDYzOTkxY2Y0ODJkZTljYmYuanBn.cache","vod_id":18931685,"title":"Menjinakkan pacar dengan kontras yang ekstrem! 1","lastmod":"2025-03-19","duration":"02:07","url":"/play/18931685.html"}]},
videoTitle: 'MMZ015_Pelatihan Pelacur Bos_Pengembangan Seksual Pengasuh yang Berpakaian Silang Situs Web Resmi Bai Ruobing.',
language: 'id',
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('Tautan berhasil disalin!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Tautan berhasil disalin!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Tautan berhasil disalin!');
}
}
},
// 切换布局
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=/`;
}
};
}