Chicken Coach bercosplay dengan Ayaka Kamisato_Teacher menembak saya_Menembak air mani ke dalam rahim Kamisato","lastmod":"2026-07-11","duration":"29:42","url":"/play/19166009.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTUvYTNlYTc3YTg5MWI4MzYxMWI2YzU2OTVkMTVmMWVlNmQuanBn.cache","vod_id":19134052,"title":"[Penambahbaikan Wajah Super Comel] 5 Senario Pengalaman Melancap Pasif Terbaik! Membimbing Ejakulasi dengan Bahasa Lucah yang Menghina! Mengabaikan Sokongan Melancap - Kuramoto Sumire HMN-727","lastmod":"2025-12-18","duration":"03:02:27","url":"/play/19134052.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTM5NDE2NmI0ZmVhYjI5ZDU5NDNkNWNjMTQ5MjVmMjAuanBn.cache","vod_id":18989627,"title":"Seorang penyiar wanita Korea Selatan dengan payudara besar melancap sambil menyentuh vulvanya melalui seluar dalamnya di atas kerusi!","lastmod":"2025-03-23","duration":"02:14:02","url":"/play/18989627.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMThiMzg1OWM5M2Q1YmRhMGJkZTEwMzAzNWE5NzNmMmMuanBn.cache","vod_id":19013212,"title":"Semasa mengukur ketinggian saya, kakak saya tiba-tiba menarik seluar saya ke bawah dan memberi saya seks oral. (“Siri Arahan Guru” S2: E3!)","lastmod":"2025-03-24","duration":"24:26","url":"/play/19013212.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjJhZWM1MjRmYzk5YmE5OTU5MTI1NjhmN2Y4OWExNTguanBn.cache","vod_id":18962113,"title":"Dewi bertelinga kucing memasak dan menggoreng tanpa pakaian di dapur, melancap sambil makan. Farajnya agak bersih, dan dia menggunakan alat bergetar untuk melancap.","lastmod":"2025-12-14","duration":"01:10:58","url":"/play/18962113.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGVhNTlkNjkzMDUxM2Q5N2YwYWI3NWQwNTI4N2Q1ZjIuanBn.cache","vod_id":18946714,"title":"Seorang wanita matang yang menggoda dan seksi melakukan hubungan seks yang ghairah dengan teman lelakinya, menampilkan gambar jarak dekat rangsangan jari dalam stoking jala hitam, dan penembusan dubur sambil dia duduk di atas kerusi. Selepas itu, dia melancap dengan penggetar.","lastmod":"2025-12-14","duration":"01:46:48","url":"/play/18946714.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzkzNTE3NzhhOWUyODkyMWNlYjY2OWI1ZTBjYmZkZTguanBn.cache","vod_id":18937103,"title":"Kylie yang comel dan menawan kelihatan seperti Qu Xiaoxiao dari Ode to Joy. Selepas membeli-belah di pasar raya, farajnya terasa sangat gatal, jadi dia melancap dan menyentuh kelentitnya sehingga dia mencapai orgasme. Ia sangat menyeronokkan!","lastmod":"2025-12-14","duration":"00:19:00","url":"/play/18937103.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjY2NDUzNDkzMjQyMGIwYzIyMjEwNzJhZjkyMDkzMDYuanBn.cache","vod_id":19151631,"title":"Saya mendapati bahawa saya menggunakan badan kakak saya yang terlalu menggoda sebagai bahan melancap; dia dengan lembut mengajar saya pelbagai perkara erotik. (Hazuki Nozomi HBAD-726)","lastmod":"2026-04-04","duration":"02:00:39","url":"/play/19151631.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTYzODI3YjEwYjAxMmE1YzAxN2IzZjRiYjVmNDQyZDAuanBn.cache","vod_id":18958844,"title":"[Sarikata Cina] Penampilan Sulung ROE-099 Beauty Dream Exposure!! Dulu saya budak lelaki yang paling tidak cool dalam kelas saya, tetapi sekarang saya menghadiri perjumpaan kelas dengan guru kegemaran saya, Himekawa Reiko.","lastmod":"2025-12-14","duration":"01:57:34","url":"/play/18958844.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2FjYTIyMGI0MGY4MDY0ZTg1ZjY3OWQ0MDNiNjU1OWUuanBn.cache","vod_id":18988048,"title":"Seorang dewi elegan bernilai tinggi yang baru-baru ini mula menstrim, model cetakan profesional, dengan susuk tubuh yang melengkung tetapi tidak gemuk, payudara yang besar dan sangat lincah, dan yang paling penting, sangat slutty, menggunakan prop untuk melancap faraj merah jambunya, dan melakukan hubungan seks di bilik hotel!","lastmod":"2025-03-23","duration":"02:20:12","url":"/play/18988048.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2UwMzYxZjE2NDNlZmJlZGVhMzFhYzMwYmNjYzBhNmUuanBn.cache","vod_id":18930393,"title":"Seorang wanita seksi, matang dan rupawan, memakai stoking dan kasut tumit tinggi, melancap secara menggoda, kelangkangnya dibuka dan seluar dalam ditarik ke belakang, menggosok dirinya dengan pantas, mengerang dan tercungap-cungap sambil mengangkat punggungnya.","lastmod":"2025-12-14","duration":"00:36:54","url":"/play/18930393.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvYjRhM2M2OGVhZDMyMjA5ZWQ1NGQyN2Q0ZDA5ZjIzMWMuanBn.cache","vod_id":19065175,"title":"Seorang gadis yang menarik dalam stoking putih menggunakan bahasa yang tidak senonoh dan terlibat dalam interaksi menggoda, bermain dengan alat permainan dan melancap.","lastmod":"2025-12-14","duration":"16:33","url":"/play/19065175.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWNhMGQ5NjNmOGI1ZjRhYjlhMjU4NzYxZWI5NzBhZGYuanBn.cache","vod_id":19013185,"title":"Faraj gadis muda itu penuh dengan air mani putih semasa melancap.","lastmod":"2025-03-24","duration":"07:25","url":"/play/19013185.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDk1YTM0OWVkODAwMmI3ZGU4Y2RmM2UzODU3ODMwMWMuanBn.cache","vod_id":18928657,"title":"Platform \"Little Cute\" (dahulunya Kawaii) menampilkan wanita matang yang menarik yang terlibat dalam melancap ghairah dan pertunjukan penembusan faraj, yang sangat memikat.","lastmod":"2025-12-14","duration":"00:38:22","url":"/play/18928657.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjQyMGJhYmM5ODE1NTQ5NmE3Nzk5ZjY1ZWY2ZDE3YzguanBn.cache","vod_id":19152280,"title":"Saya percaya dia akan memaafkan saya atas apa sahaja yang saya lakukan kepada seorang pelajar perempuan yang pendiam dan patuh. Saya seorang guru, jadi saya merogol pustakawan yang cantik dan introvert itu. SNOS-036","lastmod":"2026-04-08","duration":"01:59:58","url":"/play/19152280.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTQvYjVkMTI1YzQ4MDk3YjY0ZWJiOWRkZWU0MDg4OWIxZWMuanBn.cache","vod_id":19028880,"title":"Isteri saya sedang hamil dan saya dilarang melancap, jadi saya pergi ke Tokyo untuk bertemu ibu mertua saya, Tada Yuka. JUQ-199-C.","lastmod":"2025-04-13","duration":"02:15:12","url":"/play/19028880.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmUwNTNlYjhlZjc1YWYwN2NiNDI2N2RmNTNkNDQ2MWQuanBn.cache","vod_id":18988724,"title":"Seorang gadis berambut pendek yang cantik sedang mempamerkan vulvanya dengan cara yang menggoda, menggunakan cermin untuk menampakkan gambar jarak dekat vulvanya sambil melancap dengan jari-jarinya di dalamnya. Ia sangat menggoda, jangan ketinggalan jika anda suka!","lastmod":"2025-12-14","duration":"01:01:53","url":"/play/18988724.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvY2Q5YmRmMjhjZjI5NThkNDYzNGMxYzljMjQyNjY2ZWMuanBn.cache","vod_id":19137956,"title":"Dia hanya menunjukkan kepada saya apa yang ada di sebalik kot putihnya. Dengan syarat mutlak tidak mengeluarkan bunyi, dia menggunakan pakaian renang yang terlalu mendedahkan untuk menggoda dan menembusi seorang guru kesihatan berdada besar. (MIAB-539)","lastmod":"2026-01-12","duration":"02:01:47","url":"/play/19137956.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODRlYTJjMzM0YWVmMzcwYWIxM2FiYmFhYThhMzczZjUuanBn.cache","vod_id":18963836,"title":"FC2PPV 3196469 Bebas kabur Gaussian, bonus pendedahan wajah, kuantiti terhad *1930pt → 500pt [Penggambaran pertama] [Bahagian 1] Yumeno-san ialah pelajar universiti tahun pertama tahun ini","lastmod":"2025-03-22","duration":"00:19:39","url":"/play/18963836.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9pYy4xNTUyNTAyMTQudG9wLzIwMjYwMjI1L3hlMkg4RnhpLzEuanBn.cache","vod_id":19145440,"title":"Gadis Loli Tao Xiaomomo-chan melancap dan memancarkan cecair putih.","lastmod":"2026-02-26","duration":"09:50","url":"/play/19145440.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MzAvNDJkMTA5NjAxYzcwZDA5ZDYyNzk3ZGU3ZGRkZjlkNzcuanBn.cache","vod_id":19035876,"title":"IENF298 - Hanya untuk gadis-gadis muda yang tidak bersalah! Saya telah membuatnya mengalami perbuatan persetubuhan yang sangat memalukan antara punggung buat kali pertama! (Sup Masam Manis)","lastmod":"2025-05-30","duration":"02:25:39","url":"/play/19035876.html"}]},
videoTitle: 'Seorang guru wanita pada hari bekerja, melancap pada hujung minggu. Shizuku Takimoto [Termasuk video bonus terhad 10 minit] ABF-308',
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=/`;
}
};
}