"Aku punya kepribadian yang ingin mengisi kekosongan. Perabotan di rumah, kotak bekal makan siang suamiku, perasaan kesepianku..." —Kaoru Anai, seorang wanita yang sudah menikah dan bertemu di sebuah klub.
Saya dan istri ingin memiliki anak, tetapi saya infertil dan hanya dapat mengandalkan donor sperma untuk mengambil sperma langsung dari vagina saya. MRSS-148-C","lastmod":"2026-07-11","duration":"01:55:49","url":"/play/19162167.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvMDQ5ODE3NzVmNjYyYzgzN2U1NTJmZTk0NTcxZmJlODEuanBn.cache","vod_id":19065723,"title":"Setelah seorang mahasiswi mengadakan pesta perempuan di rumah, pesta tersebut berubah menjadi permainan bertema lesbian khusus untuk perempuan – Permainan Raja → Permainan Ratu! Dibintangi oleh: Rina Masako, Hikari Minazuki, Erika Kuromiya, dll. (IENF_344)","lastmod":"2025-12-14","duration":"01:55:33","url":"/play/19065723.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjkvMTU4MmU1MmFiMTAzNDk4YTBjOGM1YWJhYTgwN2YyMTEuanBn.cache","vod_id":19166170,"title":"Tiga lubang masturbasi gadis kesepian itu rusak.","lastmod":"2026-07-11","duration":"15:22","url":"/play/19166170.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjU2NzE1NzRmMmM2MGM0Mzc1YTY1NGEyOTA0NjNhY2UuanBn.cache","vod_id":18960146,"title":"Wanita muda kesepian berdada besar -- dia menyemprotkan air, dia sangat murahan! Aku tidak ereksi sebelumnya, tapi setelah menontonnya, kepala penisku membengkak karena darah. Erangannya sangat cabul!","lastmod":"2025-12-14","duration":"00:26:41","url":"/play/18960146.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmNiOWIxOTQ0ZTI2ODhhMWU4NzE0ZmU4NzY4NTk1YWIuanBn.cache","vod_id":18969736,"title":"Saat wanita mencapai usia paruh baya, mereka menjadi semakin menawan. Seorang wanita menikah dengan payudara besar dan suaminya terlibat dalam sesi bercinta yang penuh gairah, dengan sang suami menjilati kemaluannya sebelum mulai menyetubuhinya. Sungguh sangat menyenangkan!","lastmod":"2025-12-14","duration":"01:23:01","url":"/play/18969736.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODNkZWMxZWI3NzRjNjMxNmFlZTEwZmU3ZTVkYzZkMTcuanBn.cache","vod_id":18988462,"title":"MEYD-563 Wanita yang keluar dari tempat gym tanpa matras seks itu adalah tetangga yang angkuh dan cantik. Aku memanfaatkan kelemahannya, jadi aku memaksanya untuk berhubungan seks dan dia ejakulasi di dalam diriku! Bahkan di luar toko, Mizumori Midori menjadi budak seks yang patuh.","lastmod":"2025-03-23","duration":"01:58:08","url":"/play/18988462.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTA2NWI0OWNkM2UwNWMxMWI3MjVkZDhhMTdlYTYzM2YuanBn.cache","vod_id":19146520,"title":"Aku ingin putus tapi tetap jatuh cinta dengan... suamiku yang brengsek, yang tidak pernah mengerjakan pekerjaan rumah tangga atau bekerja, tapi punya penis yang sempurna. Seks setelah bertengkar itu luar biasa, aku tidak bisa meninggalkannya. VEC-742","lastmod":"2026-03-04","duration":"01:42:17","url":"/play/19146520.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDJiYWRmZDM3NDU2YTQyYWUxN2I4MzE0ZjhmNjFhYWUuanBn.cache","vod_id":18967742,"title":"FNEO-068 Mari Punya Bayi! Seorang gadis cantik percaya bahwa meskipun dia mencintai pria lain, memiliki bayi bukanlah masalah. Jadi, sebelum memaksanya menikahinya, dia memutuskan untuk membuktikan cinta sejatinya dengan memiliki anak. —Misuzu Takeuchi","lastmod":"2025-12-14","duration":"02:16:03","url":"/play/18967742.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjdlMGQ3MDIwN2ViYTVmZDY3Nzc2OWU5MjZkNTg4N2YuanBn.cache","vod_id":18985868,"title":"FC2PPV 3851988 [Mutsuri F-cup] Seorang kakak perempuan yang nakal, menyentuhnya terasa sangat menggairahkan, tidak ada waktu untuk disia-siakan, dan seorang kakak perempuan berbentuk M dengan payudara F-cup.","lastmod":"2025-03-23","duration":"01:22:02","url":"/play/18985868.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmY4NTc4MTFjNzA5ZTNlMjI0NjE1N2Q4YmJmY2M2ZDAuanBn.cache","vod_id":18967766,"title":"741M559-G02 J○ Diikat dan dilecehkan oleh tiga pria! Perbudakan, lilin, seorang gadis cantik menerima kendali tanpa perlawanan.","lastmod":"2025-12-14","duration":"00:44:54","url":"/play/18967766.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODkxMjcyOWIyNDA4OWYzNjhhMzk5NDZmYjNjZTcxZjQuanBn.cache","vod_id":18990061,"title":"EQ-506 Tolong bantu aku masturbasi! Biarkan gadis cantik membantuku masturbasi sampai aku ejakulasi. (ch8)","lastmod":"2025-12-14","duration":"02:05:34","url":"/play/18990061.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDIyNTExMjdmNTEwNmQ2ZGRlNWZmZTRmYmRiNTU5MTkuanBn.cache","vod_id":19150829,"title":"Tekstur kulit, lekuk tubuh, vagina yang indah. Istri kelas atas berusia 40-an itu dikhianati. Dia bekerja di tempat kerja yang sama dengan suami saya. NTRH-026","lastmod":"2026-03-30","duration":"02:03:45","url":"/play/19150829.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTAvOTE0NTc5ZTRmZTU1MTlkZTYyNWE0MjU5YzFmMjA0YjguanBn.cache","vod_id":19046337,"title":"SW993 pulang ke rumah dan menemukan seorang gadis telanjang sedang mandi! Dari seks oral hingga ejakulasi di dalam! Sepupuku yang imut.","lastmod":"2025-08-09","duration":"03:41:55","url":"/play/19046337.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjgvNzA2NTJiZjhhNDhlMjRkNDZjZjc0NTZhNTFlNDM3OTAuanBn.cache","vod_id":19048789,"title":"HNDS080 Serius, foto gadis AV pertama di dunia yang dihasilkan AI telah menjadi kenyataan! AI bahkan mengubah kepribadiannya menjadi cabul, aku sangat menyukainya.","lastmod":"2025-08-27","duration":"02:43:11","url":"/play/19048789.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvZGUwMzY0NTRiZWQ0YmU2YWU5MmU1OWQ3MWUwNGVmMDQuanBn.cache","vod_id":19050646,"title":"CM239, Zhang Xiuling, yang berselingkuh dengan wanita yang sudah menikah.","lastmod":"2025-09-04","duration":"37:56","url":"/play/19050646.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTJmZGFkNjFlYjM5YmMxOTNjNzU3NGU2ZTEyNmExMjQuanBn.cache","vod_id":19026944,"title":"Membawa seorang pria pulang, melanggar dan dilanggar, SEKSUALITAS TANPA BATAS, sensual, cantik, ibu rumah tangga masokis, Wakatsuki Miina, JYMA-006-C.","lastmod":"2025-03-29","duration":"02:00:18","url":"/play/19026944.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTA1YTBlYWJhNjY5YjM5YmY4NGQ5MjBjNzg1ZmQzMzAuanBn.cache","vod_id":19148886,"title":"Koleksi gambar erotis tubuh gadis-gadis muda yang memikat. Gambar tersebut menggambarkan tubuh erotis seorang gadis, seolah-olah sedang dijilat, yang memicu keinginan untuk masturbasi. (FGAN-171)","lastmod":"2026-03-18","duration":"01:55:29","url":"/play/19148886.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTAvMTdiYTVjOThjZjcxNmQyYTMzMWVhYjkwN2NmYjM0NWEuanBn.cache","vod_id":19056821,"title":"Seorang wanita yang suaminya berselingkuh dan mengalami frustrasi seksual akan berselingkuh juga. \"Suamiku selingkuh, jadi aku butuh orang lain untuk memelukku...\" — Aktris tak dikenal MEYD953","lastmod":"2025-10-09","duration":"03:12:19","url":"/play/19056821.html"}]},
videoTitle: '"Aku punya kepribadian yang ingin mengisi kekosongan. Perabotan di rumah, kotak bekal makan siang suamiku, perasaan kesepianku..." —Kaoru Anai, seorang wanita yang sudah menikah dan bertemu di sebuah klub.',
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=/`;
}
};
}