#1 Sangat Cantik, Payudara Montok, Dewi Impian_ "Siswi Pemberontak Berkencan dengan Guru dan Berhubungan Seks di Dalam Mobil" Seorang gadis nakal yang birahi, sang guru tak tahan lagi dan menundukkan kepalanya untuk seks oral.
SIRO-5193 [Zona Erogenous Seluruh Tubuh] Seorang mahasiswi yang pemalu dan sensitif muncul! Seluruh tubuhnya adalah zona erogenous, bukan lelucon! Di mana pun Anda menyentuhnya...","lastmod":"2026-07-11","duration":"01:04:08","url":"/play/19152706.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTc5MmIxNjU0MDlmOGIxMTBhOWNiN2MzYTU3ZWJiZWMuanBn.cache","vod_id":18945555,"title":"Setelah seks oral, penis menjadi keras dan besar, lalu si jalang kecil itu disetubuhi dengan kasar.","lastmod":"2025-03-19","duration":"11:39","url":"/play/18945555.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTUvYWJhZjU5ZTllZmQ3YWM5OTJiOTQzYmI5NTczMDkzMWMuanBn.cache","vod_id":19104681,"title":"Pria berjenggot itu bermain-main dengan vagina si jalang besar~ Dia langsung memasukkan botol kaca ke dalam vaginanya, dan penisnya yang besar pun ikut masuk. Itu sama sekali tidak bisa memuaskannya. Dia menggunakan kondom untuk menyetubuhi pantatnya, lalu ejakulasi di luar.","lastmod":"2025-05-15","duration":"26:42","url":"/play/19104681.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZWIxYzRiOTQ5OGJmODA3OTAwN2JlMWI2YmU5YWRlNjIuanBn.cache","vod_id":19142613,"title":"MFCW-016 \"Aku belum pernah ejakulasi di dalam siapa pun sebelumnya...\" Seorang wanita yang sudah menikah menikmati perselingkuhan pertamanya, dan kencan di luar nikah yang fotogenik! Menyembuhkan jiwa di kolam pengamatan.","lastmod":"2026-03-21","duration":"01:39:30","url":"/play/19142613.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjM0YzgwMjU2N2M2NTk5MmFhY2MzMGM2MmZkMjFmMTMuanBn.cache","vod_id":19097509,"title":"Ibu temanku, yang biasanya sangat elegan, memiliki bentuk tubuh yang bagus tetapi vagina yang sangat sempit. Dia disetubuhi sampai menjerit seperti jalang. Satu-satunya kekurangannya adalah payudaranya agak kecil.","lastmod":"2025-03-27","duration":"01:25","url":"/play/19097509.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjEvOTJlNmRlNDZkZTYwMjkzYTBhY2E1ZTFjNGI5OWI4ZWEuanBn.cache","vod_id":19101285,"title":"Seorang gadis manis berbaju putih berlutut dan melakukan seks oral hingga ke tenggorokan, lalu menggosok bokong dan alat kelaminnya.","lastmod":"2025-04-21","duration":"58:39","url":"/play/19101285.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMmI2ZTZiMzQ5NWU5MGJhMTY1YTdiMTE3MzIyODVjODUuanBn.cache","vod_id":18937642,"title":"DVDMS-948 Negosiasi mengejutkan dengan seorang siswi berbaju ketat hitam sepulang sekolah! Apakah Anda bersedia mencoba Permainan Raja pertama Anda dengan seorang perawan seusia Anda?","lastmod":"2025-03-19","duration":"03:40:11","url":"/play/18937642.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDk3MjhjOTdmOTQxMDJiZjMwMDQ4ZThlZDQ4NTljZjMuanBn.cache","vod_id":18971648,"title":"Seorang pria yang pandai berbicara menggunakan bujukan terus-menerus dan hadiah untuk memikat gadis yang disukainya ke sebuah hotel.","lastmod":"2025-03-19","duration":"57:35","url":"/play/18971648.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNDE2OTZjMTIzMjUzOTBiMThiYzBiZWZlYjhmZTEzMDAuanBn.cache","vod_id":19149246,"title":"Diam-diam merekam close-up seorang wanita muda cantik yang melakukan seks oral dan menjilat.","lastmod":"2026-05-29","duration":"29:39","url":"/play/19149246.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjc1MGRmNGU4NGU5YjE2Mjg0MDg3MTFmNjFlYWUwNjkuanBn.cache","vod_id":19029519,"title":"Jeritan wanita cantik bermata sipit, tanpa sensor, dan berdefinisi tinggi itu tak tertahankan (kamera internal).","lastmod":"2025-03-19","duration":"11:50","url":"/play/19029519.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODc0ZGQxMWE0YzY0ZmY2YjhmMmFiZmU0ODg4MjRkOTYuanBn.cache","vod_id":19018561,"title":"FC2-3917218 Marina-chan, seorang siswi cantik berkulit putih, langsing, dan bertubuh seksi. \"Apakah benar-benar tidak mungkin menemukan video ini di mana pun...?\"","lastmod":"2025-03-19","duration":"01:41:37","url":"/play/19018561.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMTNiZDJhZGM2ZGZlM2IzYjU2Y2I2NjNlMTdiNDE0ZGIuanBn.cache","vod_id":18960930,"title":"259LUXU-1719 TV Mewah 1703 Seorang guru piano berpayudara besar yang sederhana namun cabul terlibat dalam hubungan seks yang intens.","lastmod":"2025-03-19","duration":"01:11:18","url":"/play/18960930.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjY5NTVlYzczZGZiNTY0YjJmNjBiMDVkMjllYWYyYzEuanBn.cache","vod_id":18982078,"title":"[Mimpi Erotis Selebriti AI] Yang Mi Memberikan Pendidikan Seks kepada Dua Siswa","lastmod":"2025-03-19","duration":"17:08","url":"/play/18982078.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2YxYTAxMjY4ZjM0Zjk5YWQzZGRiNThmZmI1NjM2YjMuanBn.cache","vod_id":19006756,"title":"HUNTC-218 Selama perjalanan perusahaan, saya adalah satu-satunya pria, dikelilingi oleh rekan-rekan wanita yang cantik, dan kami mengadakan pesta yang fantastis di King's Game! Lepaskan diri dari rutinitas harian dan alami petualangan tak terduga di penginapan pemandian air panas.","lastmod":"2025-03-19","duration":"02:57:21","url":"/play/19006756.html"}]},
videoTitle: '#1 Sangat Cantik, Payudara Montok, Dewi Impian_ "Siswi Pemberontak Berkencan dengan Guru dan Berhubungan Seks di Dalam Mobil" Seorang gadis nakal yang birahi, sang guru tak tahan lagi dan menundukkan kepalanya untuk seks oral.',
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=/`;
}
};
}