Keseronokan Gadis Amatur Kali Pertama Menonton Melancap ④ PEJABAT K」S","lastmod":"2026-07-11","duration":"","url":"/play/19267458.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMmMwZGJiYWIyNWRkMzIxODU3MTc1OWRiNDBhYmIxZGYuanBn.cache","vod_id":19243812,"title":"Pergi ke salon khusus untuk seks oral? Untuk menghalang teman lelakinya daripada pergi ke rumah pelacuran lagi! Sumire Kurokawa, Natsu Nishida, MIAA-889","lastmod":"2026-02-08","duration":"2:02:33","url":"/play/19243812.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDgvYjIyMTAzOTc1ODVmMzM0NDQwY2M5NDk3NDBmNjM2YmYuanBn.cache","vod_id":19267431,"title":"Aoi Ran, diperakui sebagai gadis hisap zakar. Projek Aroma Aoi Ran.","lastmod":"2026-07-11","duration":"","url":"/play/19267431.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYTk5YTdlNTI2NDBjNzJhMWQ5ZGMzZDBkMGNiODM0NDYuanBn.cache","vod_id":19261350,"title":"Kucing dara memang terbaik!! Pertemuan Seksual Pertama Ibu yang Naif (4 Jam) Dibintangi: Hanagari Mai, Niizumi Maika, Nozomi Hikari, dll. (Cheer Tribe)","lastmod":"2026-05-31","duration":"4:04:30","url":"/play/19261350.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDg1YzFiMjIzN2Q5ZGQxYjJlOGYyZGY0M2RmZWJlZTkuanBn.cache","vod_id":19130839,"title":"4. Punggung wanita itu ditolak ke depan dan ke belakang sehingga zakarnya, yang telah ditarik balik sebelum ejakulasi, dimasukkan berulang kali ke dalam badannya, membuatkannya liar...","lastmod":"2025-03-29","duration":"1:59:02","url":"/play/19130839.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDYvMDc0Mjg5MjdhNTI5N2Q3ODQxYmJhNzBlNGYzNzAzNjEuanBn.cache","vod_id":19211336,"title":"Sekali pandang pada kecantikan ilahi dewi ini dan zakarku membengkak ke puncak, menembusi kelangkangku.","lastmod":"2025-07-05","duration":"2:01:17","url":"/play/19211336.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvM2EzZWRmZGY4ZDNjYzFjMmVjZDY1NDExYTM2M2M1NjAuanBn.cache","vod_id":19074939,"title":"Sesi Foto Pertama Isteri Amatur","lastmod":"2025-03-29","duration":"1:02:31","url":"/play/19074939.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMWQ5OTIzOGY1ZTYzNjYzZmQ3Y2Q4NjJiMTYxNDYzNWYuanBn.cache","vod_id":19256375,"title":"Anda akan melakukan hubungan seks dengan seorang amatur yang baru anda temui! 10 pelakon wanita yang secara semula jadi tidak senonoh, termasuk Mao Kurata, Akari Shinmura, dan Natsu Tojo. Diterbitkan oleh Momotaro Eizou.","lastmod":"2026-04-30","duration":"4:01:02","url":"/play/19256375.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvYmE3MDkxYzJjNTg1MDc4NGQ0YmNkMTEyN2MxZDYzZWQuanBn.cache","vod_id":19267926,"title":"Orang Cabul Senyap: Bunyi Tercungap-cungap dan Seks Oral Di Tengah-tengah Kesunyian - Kikuno Ran Fitch","lastmod":"2026-07-11","duration":"","url":"/play/19267926.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2M2NDliMGQ2YzNhMDI5MTIxYTZiZTE2YzQ0ZGE2YTMuanBn.cache","vod_id":19145079,"title":"CJOB-136 Apabila anda keluar air mani, najis terbaik akan dibisikkan di telinga anda, zakar anda akan digosok, dan anda akan dimanjakan lagi dan lagi!","lastmod":"2025-03-29","duration":"3:56:48","url":"/play/19145079.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGFmZTFjODVjNDQ1MTNhYTBjMzNmY2YxZDliYzcxOWMuanBn.cache","vod_id":19156711,"title":"Memancut di dalam rongga gadis cantik, tanpa meninggalkan setitik pun - Rukawa Yu.","lastmod":"2025-03-30","duration":"2:32:45","url":"/play/19156711.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvM2ViNWVjM2M0NzE5NGU1N2I0YjI5YTEzMGM3ODlkNTIuanBn.cache","vod_id":19250710,"title":"MIDV-681-C Seorang wanita yang taksub dengan posisi seks yang membawanya ke puncak syahwat mencari sudut sempurna ke rahimnya dan berulang kali memancutkan air mani di dalamnya!","lastmod":"2026-03-24","duration":"2:00:03","url":"/play/19250710.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MzAvOTI3OTM5NDFjMzg5Y2I2MTMyODM1ZTQwNmJjNWIwYzEuanBn.cache","vod_id":19215650,"title":"Proses pemilihan kelab dan seks bertiga dengan sepupu-sepupu yang cantik. Sepupu yang lebih tua itu sangat cantik sehingga saya tidak dapat menahan diri daripada melakukan hubungan seks dengannya lagi.","lastmod":"2025-07-29","duration":"1:06:49","url":"/play/19215650.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvM2YyYzZmNjBhODk1NGY3YTI4ODc0OTYyOTQ4ODViNmUuanBn.cache","vod_id":19044748,"title":"MM054 Pancutan paksa dalam runtuhan; wanita pejabat berdada besar merogol rakan sekerja.","lastmod":"2025-03-28","duration":"0:26:30","url":"/play/19044748.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MDEvMzFkYjE0N2VhZjhmMDYyMjYxYTQwNTk4MDM1ZWEwZjUuanBn.cache","vod_id":19216087,"title":"Stoking hitam, perempuan jalang langsing, berpayu dara besar, berkaca mata memberikan seks oral kepada suaminya dan melakukan hubungan seks dengan penuh ghairah.","lastmod":"2025-07-31","duration":"1:00:10","url":"/play/19216087.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTQ2MWZmZTNlNjM4M2ExMGFhMTI3ZDRiOWQyZmMxMjQuanBn.cache","vod_id":19171211,"title":"Wah! Payudara itu sangat besar! [Gen Z yang sangat montok] Sangat putih dan besar, saya sukakannya!_5","lastmod":"2025-03-30","duration":"0:24:45","url":"/play/19171211.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODYzMzFmYmU0ZjdjNDMyNTZlMzVjZDMyMjk2ZDcyMGQuanBn.cache","vod_id":19080435,"title":"Ini merupakan sesi seks oral yang sangat sengit. Sungguh menakjubkan pesakit tidak serta-merta mengeluarkan air mani.","lastmod":"2025-03-29","duration":"0:59:47","url":"/play/19080435.html"}]},
videoTitle: 'Ini merupakan sesi seks oral yang sangat sengit. Sungguh menakjubkan pesakit tidak serta-merta mengeluarkan air mani.',
language: 'ms',
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('Pautan disalin!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Pautan disalin!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Pautan 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=/`;
}
};
}