Saya mengadakan pertemuan rahasia yang sangat intim, singkat, dan rahasia dengan istri paruh waktu saya, Rin. Dia memiliki kecocokan seksual yang sangat baik. Rin Okae Rin Okae Madonna","lastmod":"2026-07-11","duration":"02:18:27","url":"/play/19162104.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzk3YTBjNGUwNDc1ZDdjZjBhMmY4NGFhMjI4OTZjNzEuanBn.cache","vod_id":19013761,"title":"HONB169 [Rekaman Pribadi] Video Seks Hotel Cinta Pendidikan Komprehensif Kabupaten Kelompok Dukungan Kehamilan Plus Alpha (Inses)","lastmod":"2025-03-24","duration":"04:20:39","url":"/play/19013761.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjMyZTVlYjI3NDZiZjg2ZmM0ZWE4NTM4Y2NjMDc4OTIuanBn.cache","vod_id":19151589,"title":"Slurp, slurp, hanya melihatnya saja membuatku sangat bergairah... Seks ciuman mesra dengan wanita tercantik di dunia 110 original 12 jam OFJE-588","lastmod":"2026-04-04","duration":"11:56:04","url":"/play/19151589.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDk4Y2ZlMWIzOTc4OThjMGE4NThlNTI1NmQ3MmM2ODEuanBn.cache","vod_id":18949215,"title":"AP-707 Terpaksa melakukan hubungan seks dengan pasangan lesbian yang membenci pria! Anggota klubku membenciku, jadi aku selalu diejek dan diperlakukan seperti kurir! Bahkan selama kamp pelatihan klub kami di resor spa...","lastmod":"2025-12-14","duration":"02:32:49","url":"/play/18949215.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzg3Mzc1MmQyMjExZjUzZGFjMjRmOTFiY2RiYmVjYzYuanBn.cache","vod_id":18973464,"title":"[Subtitle Bahasa Mandarin] HMN-370 Mahasiswi saya yang montok telah menjadi pembantu rumah tangga saya. Sekarang saya menekan payudaranya erat-erat ke tubuhnya dan melakukan hubungan seks cream pie dengannya, membuatnya mencapai orgasme berulang kali. Sakura Kurumi","lastmod":"2025-12-14","duration":"01:56:26","url":"/play/18973464.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTIzMThmN2QyMjRlMDkzMGViZGZjN2FjODNkYjE4MmUuanBn.cache","vod_id":18987423,"title":"HEYZO 2457 Masturbasi sampai basah kuyup! Seks klimaks dengan gadis yang haus Vol.12 - Non Suzumiya","lastmod":"2025-12-14","duration":"01:01:30","url":"/play/18987423.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmYwNzQxZGQzNjQxODU5ODI4OTEzNGFhOWJmMTkwN2IuanBn.cache","vod_id":19008552,"title":"Kehidupan sehari-hari MMNA017 menampilkan pasangan berbalut renda yang sangat cantik~ ciuman dewasa dan adegan seks dewasa dengan Yui Hatano dan Aki Sasaki.","lastmod":"2025-03-24","duration":"03:19:48","url":"/play/19008552.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmYxMmRjZWIyZGNiODJiZjZjMTFhMzU1NDIzOGI1YjMuanBn.cache","vod_id":19010919,"title":"MRSS082 Istri saya berusia tiga puluhan dan baru saja memulai kuliah. Dia bilang akan belajar giat dan tidak akan main-main, tetapi dia mudah tertipu oleh klub seks dan akhirnya terlibat dalam pesta seks berkelompok. Kurokawa Sarana.","lastmod":"2025-03-24","duration":"01:58:05","url":"/play/19010919.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzYyZTQwODFlNjg3Y2M5ZGM2Nzc5Y2MzZDhiYmY1NWEuanBn.cache","vod_id":19150477,"title":"DLPT-002 - Bocoran Teknik Seks Ekstrem Porchio Trans","lastmod":"2026-03-27","duration":"31:09","url":"/play/19150477.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjIxNWIxODM3MWVjMGQ4NjFmOTUxODNiOTc2OWNiYWIuanBn.cache","vod_id":18965396,"title":"IPX-001 Kencan di Toilet Mahasiswi: Seorang wanita cantik masokis mesum yang menyukai pria yang lebih tua dan hanya bisa terangsang di toilet untuk menikmati seks sepenuhnya! Rui Hizuki","lastmod":"2025-12-14","duration":"02:39:46","url":"/play/18965396.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjViZmE3OWQ5ZmEyZjc2NzRlZGExNWY3ZWRmNDVlMDcuanBn.cache","vod_id":18950064,"title":"STAR-551 Marina Shiraishi - Diperkosa oleh ayah mertuanya di malam yang panas terik... Seks penuh gairah yang dipenuhi cairan tubuh","lastmod":"2025-12-14","duration":"02:52:15","url":"/play/18950064.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDNiYzNjYTI3YjM5Mzc1Mzc5YWMzNmI1Y2Q5ZDhhMzUuanBn.cache","vod_id":19023359,"title":"IENE979 Seks Rongchuan Naia yang sedikit mabuk.","lastmod":"2025-03-24","duration":"02:19:41","url":"/play/19023359.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2QwZTBiNTViMjg2ODBiNTE5OGVlZmZkYTc3ZDRiYWIuanBn.cache","vod_id":18927413,"title":"Karakter perempuan -MesuSaga-Persona1","lastmod":"2025-12-14","duration":"00:24:02","url":"/play/18927413.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTYxYzQ2MjJhNjQ2MWM5NGNkZmE0ZjZjOWVlNTlhYjMuanBn.cache","vod_id":18970153,"title":"SDMF-030 Selama perawatan infertilitas putri saya, saya mendonorkan sperma saya dengan berulang kali berhubungan seks dengannya dan berejakulasi ke dalam dirinya. Ini melibatkan 300 hari hubungan seksual intim antara ayah dan anak perempuan. Pink Family, Volume 32, Miku Mio.","lastmod":"2025-12-14","duration":"01:51:32","url":"/play/18970153.html"}]},
videoTitle: 'Abadikan keintiman seorang gadis mungil dan seksi dalam permainan peran seks!! cd1.',
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=/`;
}
};
}