Wanita dewasa berusia 46 tahun melepaskan seluruh kekuatannya! Yui Hatano dan AIKA Otsuki diperkosa secara brutal, dengan Yui Hatano menerima semburan sperma di wajahnya.
MyFamilyPies S4E3 Hubungan Insest Ayah Tiri: Orang Tua Memata-matai Saudara Laki-laki dan Merayu Saudara Perempuan Secara Seksual","lastmod":"2026-07-11","duration":"","url":"/play/19244786.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjY4M2ViYzVhMDVjNTQ1NmJlOGMxZjkxMWFmZjQ5ZDkuanBn.cache","vod_id":19079366,"title":"MRSS-060 Istri saya berusia awal tiga puluhan dan baru saja memulai kuliah. Dia bilang ingin fokus pada studinya dan berhenti berhubungan seks, tetapi dia dengan mudah tertipu oleh klub seks dan akhirnya menghadiri pesta seks berkelompok. (Asami Sena)","lastmod":"2025-03-29","duration":"02:03:20","url":"/play/19079366.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmUyZTQ2YzFmYTU3ODc2MzhhNzU5YmU1ZGYyOGFiNjUuanBn.cache","vod_id":19037255,"title":"Bahasa Karibia 110919-001 Kikukawa Mitsuka, seorang gadis polos yang sama sekali tidak ingin hamil VS Cumshot","lastmod":"2025-03-28","duration":"01:02:27","url":"/play/19037255.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZGNmZjczMTRlNzk4YmYyMjA1NWIzNzk0NzZjMTQ0NmYuanBn.cache","vod_id":19237637,"title":"Kencan lewat media sosial dengan cosplayer bertubuh seksi setinggi 100cm! Pesta seks 5 orang, hubungan seks intens, ejakulasi di dalam dan di wajah!","lastmod":"2026-05-27","duration":"2:04:57","url":"/play/19237637.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNGZiYmE1N2QyMDA2MDA5YzgyMTFiMTlhMzg0ODY2YTEuanBn.cache","vod_id":19224450,"title":"Wanita dewasa seksi SM-Yingzi2, ratu stoking hitam sejati, diikat dan didisiplinkan, mengerang dan memohon ampun, lalu diperkosa secara brutal hingga kehilangan kendali dan mencapai klimaks.","lastmod":"2026-03-30","duration":"1:33:26","url":"/play/19224450.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOWIxZWQyODMwZDdjNmUwYWMwMWJjNzQwNTNjMjNiZTguanBn.cache","vod_id":19231176,"title":"MIFD-490-C Himekawa Kanon, seorang gadis polos, diperkosa secara brutal, dengan penis yang menusuk dan mengeluarkan ejakulasi di dalam dirinya, menghasilkan tiga kali orgasme!","lastmod":"2026-04-27","duration":"2:00:51","url":"/play/19231176.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTBkOWExNDYwNTFjYjVjY2MxZGFmZTQ3YWIwNjZkMTUuanBn.cache","vod_id":19122199,"title":"SDMU-152 Pasangan Biasa × Ejakulasi Asli × Ejakulasi Berkelanjutan","lastmod":"2025-03-29","duration":"01:58:02","url":"/play/19122199.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMGY2MGE2OTg1ZjZhYjEwZjdhMWM3MWMzOTkxMWY0MTguanBn.cache","vod_id":19221360,"title":"DJJJ-008, seorang wanita dewasa dan mengerikan, diperkosa dan dirusak secara brutal! Dia mengalami kejang klimaks dan kejang seluruh tubuh, sepenuhnya menyerah pada vaginanya dan dikuras hingga kering!","lastmod":"2026-03-11","duration":"1:01:35","url":"/play/19221360.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTYzNDc0M2JkOGRjZWU4MzViNDExZjM5NWEwNWM5MzkuanBn.cache","vod_id":19233524,"title":"DVAJ-680-C Kekasih masa kecil menyerahkan dirinya kepadanya pada malam sebelum pernikahannya! Payudara besar, hubungan seks yang intens, dan ejakulasi di dalam membuat pengalaman ini tak terlupakan.","lastmod":"2026-05-07","duration":"2:08:47","url":"/play/19233524.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDllNGVhZWZmMDk3NjAzYzlmOTUxZmVlYTc5NWM0OWQuanBn.cache","vod_id":19223057,"title":"ROE-446 Model ibu-ibu tinggi dan seksi dengan payudara ukuran G, Aoi Yurika, adegan seks hardcore eksklusif dengan sengatan listrik, payudara besar berkualitas tinggi saling berjalin dan mendesah.","lastmod":"2026-03-20","duration":"2:28:51","url":"/play/19223057.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTUvYWQ0MmYxNjc4NmEwNDM3NjgzNDZhYjJmZTRlYWZhNzUuanBn.cache","vod_id":19172931,"title":"Seorang ibu tiri yang haus akan seks menunggu dengan cemas sepanjang malam untuk ayah angkatnya yang tidak ada, hanya untuk berulang kali diperkosa oleh anak tirinya hingga fajar. (Matsukawa Chimi, VENX-146-C)","lastmod":"2025-04-15","duration":"01:47:23","url":"/play/19172931.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNjdlZDc5ZDBiMjNkZTcwNzViNDgwNTcwYjNiMGM5Y2MuanBn.cache","vod_id":19233038,"title":"Vagina Berkualitas Tinggi dari Galeri Amatir, Seks Tiga Pukulan dari Suku Telanjang","lastmod":"2026-05-04","duration":"2:58:48","url":"/play/19233038.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvODM2OWU5ZWNjY2Y2MzFjZDM1YmM5MDhiYTNkZjFiNmYuanBn.cache","vod_id":19228163,"title":"SAN-422 Ibu rumah tangga bertubuh montok diperkosa secara brutal oleh pemilik rumah karena tunggakan sewa; wanita muda yang nakal menyerah pada rayuan nafsu dan diperkosa tanpa ampun sebagai pembayaran.","lastmod":"2026-04-09","duration":"2:19:08","url":"/play/19228163.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmEzYmZkOTg0NDI2YjI4NWYwODFiNTQzYWFmMjUyMmEuanBn.cache","vod_id":19067561,"title":"NNPJ-026 Yui Hatano & Sutradara JAPAN akan datang! Sangat brutal dan ekstrem","lastmod":"2025-03-28","duration":"03:39:27","url":"/play/19067561.html"}]},
videoTitle: 'Wanita dewasa berusia 46 tahun melepaskan seluruh kekuatannya! Yui Hatano dan AIKA Otsuki diperkosa secara brutal, dengan Yui Hatano menerima semburan sperma di wajahnya.',
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=/`;
}
};
}