[4K] Istri tetangga adalah pelatih bokong yang cantik, tubuhnya yang lembut dan perkembangan ejakulasi terlarang yang sakral yang hanya bisa Anda impikan. Yuri Maina Crystal Image","lastmod":"2026-07-11","duration":"02:05:55","url":"/play/19162031.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmYzNjIxMmQ0NjRmMDc5ZTQ1OWExYzhkMmIxZjk2M2EuanBn.cache","vod_id":19024954,"title":"Pacarku sangat pandai menemukan trik untuk menjaga hubungan kami~ Setiap kali kami berhubungan seks, itu selalu menjadi pengalaman baru.","lastmod":"2025-03-24","duration":"20:06","url":"/play/19024954.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmQ0ODA1MGM3ZjhmYjg3MjhlMzQzOWIwOWMwNDc3M2EuanBn.cache","vod_id":19014969,"title":"Obat mujarab: menyembuhkan pacarku yang lembut, Harmony, dengan hubungan seksual dan pijat.","lastmod":"2025-03-24","duration":"29:53","url":"/play/19014969.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWZhY2FjNTVjMjMwYjI3MjRkYjg1NmEyZDY2NjM3ZTcuanBn.cache","vod_id":19009675,"title":"JUL086 Saya seorang ayah rumah tangga baru. Dulu, saat saya masih mengenakan celemek, wanita tetangga sudah bermain dengan saya. — Yuka Oshima","lastmod":"2025-03-24","duration":"01:58:17","url":"/play/19009675.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MDMvMzEyNjg1NjcxZWIwZDI2YjA3MmJiMWYyYzMzNDRlMjMuanBn.cache","vod_id":19031886,"title":"Karena saya pergi dalam perjalanan bisnis selama tiga hari, pacar saya yang bertubuh seksi dikhianati oleh ayah saya dan bahkan memiliki anak darinya. (Jing Airi, Arai Airi, DASD-599-C)","lastmod":"2025-05-03","duration":"02:00:31","url":"/play/19031886.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTMvYzJjYjlmYzA3NWI4OWE1YzhhNWFmNzljZTNiMWZhMzcuanBn.cache","vod_id":19033305,"title":"ADN-565 Seorang wanita yang sudah menikah dan menderita kemandulan menjadi toilet tubuh bagi perkumpulan yang mengatur dirinya sendiri dan kemudian hamil.","lastmod":"2025-05-13","duration":"01:59:41","url":"/play/19033305.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTFiMDA0YzdlYmM4MjU1YmI2YWZjMDM0M2Q4NjBkOTkuanBn.cache","vod_id":19146764,"title":"Membuat adik perempuan pacar saya (sederhana, pemalu, dan tidak tertarik pada seks) kecanduan seks orgasme dan mengubahnya menjadi mainan seks dengan orgasme terus-menerus WAAA-579","lastmod":"2026-03-06","duration":"01:58:36","url":"/play/19146764.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvMWY0Y2Y2MmJjZTE4NzU1ZmRhMzUyOGM0ZDJhZDM5M2IuanBn.cache","vod_id":19168777,"title":"Seorang wanita muda bertema buah-buahan diundang ke pemandian air panas, ditemani oleh seorang pria tua, sehingga dimulailah kisah cinta tragis URE-044","lastmod":"2026-07-17","duration":"14:06","url":"/play/19168777.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTUvY2M4NmJlNmVjMmNhOGU2MDk2MmViNGIwNzlmMDY0ZWEuanBn.cache","vod_id":19133910,"title":"Dia pergi ke rumah bordil dan menemukan bahwa wanita yang bekerja di sana adalah seorang wanita menikah yang sombong dari sebelah rumah. Dia menggunakan ini untuk memeras wanita itu agar ejakulasi di dalam dirinya. (Amane Tsubasa MEYD-837)","lastmod":"2025-12-17","duration":"01:57:46","url":"/play/19133910.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjgvZTRkOWM1MDQ2ZjU3ZjkzMmY2MzQ0NjY1NzE5MmM3OGYuanBn.cache","vod_id":19044439,"title":"Komentar tentang Pai Buah: Ibu yang Kesepian dan Anak yang Penuh Nafsu","lastmod":"2025-07-27","duration":"16:38","url":"/play/19044439.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTkvMzQ4OWU5Y2NkMzFkZWMyZTU2YjgyMzUzZTE2OWRmZjUuanBn.cache","vod_id":19039052,"title":"APNS373 Seorang pemilik hotel wanita muda yang cantik dipaksa untuk memberikan hiburan seksual demi hotel dan suaminya yang berharga... Tubuhnya yang lembut dinodai dan dia hamil...","lastmod":"2025-06-19","duration":"02:00:10","url":"/play/19039052.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjMvNjk1ZTkyNDIxOTE2YTFjNjEzNzNkNzZiOTQwMTU3ODQuanBn.cache","vod_id":19059254,"title":"Komentar Pai Buah tentang Payudara Ilahi dan Pelacur Seksual - Anzai Lala","lastmod":"2025-10-22","duration":"12:44","url":"/play/19059254.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjNhZTFiYTIyY2Y5ZDA4OTg2MTI2NjEzZjc2ZmUxOTEuanBn.cache","vod_id":18975061,"title":"HND-656 Adik perempuan pacarku sangat menyayangiku, dan kami diam-diam memiliki seorang anak. - Eimi Fukada","lastmod":"2025-12-14","duration":"01:57:06","url":"/play/18975061.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MzAvNWNmMzYzNDEwNWM3ZWE1MjEyNTZiYTNkMzM1ZGMzZTIuanBn.cache","vod_id":19040749,"title":"MKMP637 Tianyue Dong, Cumshot, Kehamilan, Kehidupan Pengantin Baru","lastmod":"2025-06-29","duration":"02:11:25","url":"/play/19040749.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTMvMGNjZTUxMmVjYjAxYWYwYjRiODFmYjE2NWY5ZTY1ZTEuanBn.cache","vod_id":19062424,"title":"Kue Pai Buah Menjelaskan Penuaan Dini Keperawanan Anak-Anak","lastmod":"2025-12-13","duration":"17:00","url":"/play/19062424.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjVhMjE0YTBkNGZkYWM3NzRiMWQ2NzdkYTk0ZGNkZWYuanBn.cache","vod_id":18940858,"title":"[Subtitle Bahasa Mandarin] SSNI-706 Pacarku yang berkulit putih dan lembut dipermainkan oleh dua pria senior bertubuh kekar.","lastmod":"2025-12-14","duration":"02:00:05","url":"/play/18940858.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODhmZmQwZjc0MTNhZjdlYTJhZjVlMDc1OWVkN2NiZGQuanBn.cache","vod_id":18992079,"title":"[Kue Buah] Pantang seks suamiku menguntungkan adikku 2.0.","lastmod":"2025-03-23","duration":"12:24","url":"/play/18992079.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDgyNTQyYzU5Y2RjYzM2Y2I3YWYyMjgwOTRhMzQ1ZDAuanBn.cache","vod_id":19008202,"title":"Gairah seks tinggi! Pacarku yang bertubuh seksi adalah satu-satunya milikku.","lastmod":"2025-03-24","duration":"56:29","url":"/play/19008202.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTZjOTJhNzRkODljZTEzNTAwNDA5ODhlYTgyMTNhZDMuanBn.cache","vod_id":18993839,"title":"SSNI-536 Adik perempuan pacarku yang berpayudara besar tidak memakai bra dan memamerkan payudaranya; aku adalah pria terburuk yang tidak bisa menahan godaan. Nogi Hotaru 1","lastmod":"2025-03-23","duration":"01:57:45","url":"/play/18993839.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzMyZDEyM2EyNjU2Y2IyZDUxM2JhNTJkZDRhMTNmOWYuanBn.cache","vod_id":18984471,"title":"[Tanpa Sensor] EYAN-193 Seorang wanita menikah bertubuh langsing dan berdada besar, yang suaminya sedang pergi, dijilat dan diperkosa di siang bolong oleh tetangganya yang masih lajang dan berusia paruh baya… Namiki Aina","lastmod":"2025-03-23","duration":"01:53:03","url":"/play/18984471.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjgvNzY3YTc5YmU3ZmVmYzExM2QyY2Q3NTdlODA4MjVmNmUuanBn.cache","vod_id":19044372,"title":"KIT003 Wanita baik hati yang sudah menikah di sebelah rumah menggunakan kata-kata vulgar untuk membuatku mencapai orgasme, dan bahkan membuatku ejakulasi di dalam dirinya.","lastmod":"2025-07-27","duration":"01:44:08","url":"/play/19044372.html"}]},
videoTitle: 'Pria tua di sebelah rumah menghamili pacarnya (DASD-428)',
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=/`;
}
};
}