Seorang gadis cantik berambut hitam yang murni dan polos dirusak oleh pacarnya yang selingkuh... Sebuah penis besar langsung menembusnya hingga ia ejakulasi dan mengalami orgasme terus menerus tanpa kondom. Doujin AV Club - Delusion Clan","lastmod":"2026-07-11","duration":"","url":"/play/19267579.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDYvNzYyOTQyYzE1ZTgxZjc4OTc5ZDRlMWJmNTdhOTMxZjkuanBn.cache","vod_id":19229552,"title":"Pertama kali syuting di usia lima puluhan, ejakulasi intens dan masturbasi, debut AV seorang istri berusia lima puluh tahun tipe M yang sangat cabul! Minako Morihara MKD_245","lastmod":"2025-11-05","duration":"1:47:41","url":"/play/19229552.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNGUyZGZiYTYyN2MwMjZiZWNjNTcwMmNhOTFkYjE1YWMuanBn.cache","vod_id":19112616,"title":"Bintang film dewasa Tiongkok, Aifei Media ODE016, tidur dengan gadis yang diincar oleh kakaknya.","lastmod":"2025-03-29","duration":"0:29:46","url":"/play/19112616.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvM2I3MTg5YjgzOWQ2Zjk5YzA0NGIyNDA2N2JiNTY0MDQuanBn.cache","vod_id":19051646,"title":"Seorang istri yang dewasa adalah istri yang berusaha untuk hamil tetapi diinseminasi oleh ayah mertuanya, yang dengannya ia belum pernah berhubungan seksual. Seorang istri berusia lima puluh tahun pindah dan menjadi mangsa tetangganya pada hari ia menyambutnya.","lastmod":"2025-03-29","duration":"1:47:20","url":"/play/19051646.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDBkZjE3ZjU1NGYzOWYwYzFkYjNkYTg5N2E2YjVkNTcuanBn.cache","vod_id":19051042,"title":"Jika sang suami berhasil mencapai dua orgasme menggunakan teknik luar biasa Miyazaki, maka sang istri akan dikhianati.","lastmod":"2025-03-29","duration":"3:16:49","url":"/play/19051042.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjAvYTE5MDZkM2E5MDk4NDA5ZGUwZjlkYWE3MDM3Zjg4ODMuanBn.cache","vod_id":19231385,"title":"Satomi Mioka, sahabat sang istri, datang untuk memberi pelajaran kepada suaminya yang tidak setia setelah mengetahui perselingkuhannya. (VEC_660)","lastmod":"2025-11-19","duration":"1:44:23","url":"/play/19231385.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNmNkMTUwYjY2ZWE1ZGQxYTRkNDI4ZmM2ZWFjODhmY2EuanBn.cache","vod_id":19133813,"title":"3 “Ayah mertua, maafkan saya. Jika Anda melakukan ini lagi, saya akan…” Istri yang berulang kali mengalami ejakulasi di penis ayah mertuanya yang tak pernah puas… Bab 7!","lastmod":"2025-03-29","duration":"1:59:53","url":"/play/19133813.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MDQvOTg2OGMxMjdlZjkzMmRmYmZmMTU1N2UwYzI5MTYwODAuanBn.cache","vod_id":19261895,"title":"Seorang mahasiswi cantik yang bermimpi menjadi pembawa berita melakukan debutnya! Sangat intens! Laporan yang menampilkan vibrator kendali jarak jauh: \"Apa pun yang terjadi, tetaplah tersenyum dan selesaikan membaca naskah.\" (Depps)","lastmod":"2026-06-03","duration":"3:40:19","url":"/play/19261895.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTUxNTJkMmZlY2U0YjYwZTc4MmViNjUzNTI1MTZhNmIuanBn.cache","vod_id":19241319,"title":"HEYZO 3447 Aku berhubungan seks dengan seorang gadis yang patah hati setelah putus cinta! —Mihoshi Ruka","lastmod":"2026-01-23","duration":"0:59:05","url":"/play/19241319.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDE5YzlhOWI0MjJhZjA1MTkwODBlNTY0MzFiZGMyNGEuanBn.cache","vod_id":19100198,"title":"JUQ-078 \"Tubuh Telanjang yang Sangat Cantik\" Bab Eksklusif Madonna 3, Serial TV Pertama! !! Karena suami saya sedang dalam perjalanan bisnis, saya pulang untuk beristirahat selama seminggu.","lastmod":"2025-03-29","duration":"1:58:48","url":"/play/19100198.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2VhNTI0MjY5ZTc1YjQwYjRmMDRhYTRhN2ZkZWE4Y2UuanBn.cache","vod_id":19172306,"title":"SCPX498 berisi rekaman kamera tersembunyi yang merekam seorang gadis pijat bak dewi yang bekerja di sebuah salon kecantikan. Sentuhan dan hubungan seksual dilarang di salon tersebut.","lastmod":"2025-03-30","duration":"3:23:09","url":"/play/19172306.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNGY3ZjllNjM1ODliOTMzMmM5ZGE4MTNiZTZmNTMxYTcuanBn.cache","vod_id":19100984,"title":"Berhubungan seks ~ Permainan 110","lastmod":"2025-03-29","duration":"0:13:54","url":"/play/19100984.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOWZjMDYwNWEyY2ZlZGRjN2JjNDVlOTM2MWYyMGQxOTYuanBn.cache","vod_id":19254579,"title":"Untuk menghindari pandangan teman-temannya, ia melakukan beberapa hubungan seksual dengan ibu temannya. (ADN-651-C)","lastmod":"2026-04-18","duration":"2:01:39","url":"/play/19254579.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNThhMjZkNGI1YzQ5OTc0NTAxZjAyNjMxOGM4YWZkZDMuanBn.cache","vod_id":19183063,"title":"JUY920 akan membuatmu basah kuyup hanya dengan pemanasan. ~Seorang wanita yang sudah menikah basah kuyup karena belaian penuh gairah dari pria selain suaminya~ Kase Nana.","lastmod":"2025-03-30","duration":"1:57:37","url":"/play/19183063.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MDkvZjliMGE4ZDgyYWY1NDNlNDVmZTRmNTQ0OWRhZWU0NTEuanBn.cache","vod_id":19201760,"title":"Saudara laki-laki saya diam-diam berhubungan seks dengan istrinya yang baru menikah dan sedang hamil; istri yang penuh nafsu itu menawarkan vaginanya dan menghisapnya secara paksa.","lastmod":"2025-05-09","duration":"","url":"/play/19201760.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2QzYjhhYmYzNmZmMGFjNTRhZWFmNjc3NWFmN2Q3Y2UuanBn.cache","vod_id":19066822,"title":"JUQ-013 Tujuh Hari Setelah Dilecehkan oleh Bos Suami Saya, Saya Kehilangan Akal Sehat... Nina Kousaka","lastmod":"2025-03-29","duration":"2:13:38","url":"/play/19066822.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMThkZmZmZTY1MzczMzM0Y2U0ZGY1ZDY5OGJkNDg5MTkuanBn.cache","vod_id":19163164,"title":"Cium teknisi cinta itu dan langsung berhubungan seks. - Sakura Yoda","lastmod":"2025-03-30","duration":"1:01:51","url":"/play/19163164.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjFjMGEzMjJkYmUzMzIxYTFlNTY3MWY3NjRiN2MzMGIuanBn.cache","vod_id":19073265,"title":"Suamiku tidak memperlakukanku seperti seorang wanita.","lastmod":"2025-03-29","duration":"2:03:08","url":"/play/19073265.html"}]},
videoTitle: 'Ciuman Bibi dan Berhubungan Seks dengan Kakak Suaminya... #DoubleAffair... Hamabe Kanako, Minase Ayaka, Saionji Mio FA Pro',
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=/`;
}
};
}