Budak perempuan sekolah menengah melancap di bilik mandi, seluar dalam di atas kepala, terbalik, kencing di seluruh muka","lastmod":"2026-07-11","duration":"08:11","url":"/play/19164989.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMTdlNWFiYjAzMjY0ZmE5MTEzZWVjNTM3MDI3NWQ4MmMuanBn.cache","vod_id":19154639,"title":"Selebriti internet Little Wildcat - Rupa dan susuk tubuh peringkat tinggi, wajah dan puting terdedah, zakar dimasukkan ke dalam faraj suntingan strim langsung.","lastmod":"2026-04-22","duration":"10:58","url":"/play/19154639.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzg0ODI0NTQ3ZDRkMDQ1Mzc1Y2QxZmJiMDkxYTczNTUuanBn.cache","vod_id":19139281,"title":"Alat masturbasi sedia untuk digunakan untuk pemula - Kitaoka Karin - SQTE-628","lastmod":"2026-01-19","duration":"01:43:16","url":"/play/19139281.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWEyYzgxMDM5MTZjYmY2ZjU5YmFlOWFiOWI4MThjOTUuanBn.cache","vod_id":19026026,"title":"Seorang penstrim langsung yang tulen dan cantik mengenakan bayaran untuk mempamerkan penampilannya yang tinggi, susuk tubuh yang hebat, dan melancap yang bersemangat, yang sangat menggoda.","lastmod":"2025-03-24","duration":"57:03","url":"/play/19026026.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2Q1NTQxMTczOTMxOGY2YmI2YzE0MWNhM2VkZjBlMzIuanBn.cache","vod_id":18975329,"title":"Insiden pekerja Southern Power Grid: Pekerja perusahaan milik kerajaan yang montok dan berbadan sasa didakwa menjadi sasaran video lucah \"dilatih\" oleh bosnya untuk mendapatkan kenaikan pangkat. Seorang wanita yang benar-benar pelik dan berbeza!","lastmod":"2025-12-14","duration":"00:23:08","url":"/play/18975329.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTEyZDM0ZmRkY2JjYmQ2MWE0OTZmMjA3OGVhYjhkZTQuanBn.cache","vod_id":18955111,"title":"\"Terkini ✅ Cadangan Kelas Berat Tegar ✅\" Berpuluh ribu pengikut di Pixiv: Sesi penggambaran peribadi Xrei selesai~ Pelbagai adegan seks lakonan peranan dengan banyak air mani putih (3)","lastmod":"2025-12-14","duration":"00:10:44","url":"/play/18955111.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjAvYTA4OWI5MDQyM2VlMTNkNjg4YjkzMzA3OGExNjdmZGMuanBn.cache","vod_id":19063533,"title":"Tiga gadis cantik telah disetubuhi berulang kali dan dengan hebat tanpa kondom oleh abang \"Dewa Keparat\", dan mereka begitu terangsang sehingga mereka makan seperti orang gila - 6.","lastmod":"2025-12-14","duration":"30:04","url":"/play/19063533.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTAvYTBhYTMwZTY1NTJiYzQyMmVjMjlhZjYwN2FkNGY0ZGEuanBn.cache","vod_id":19167536,"title":"Seorang penstrim wanita matang yang berdada besar, berstokin hitam, menggoda seorang lelaki di sebuah bangunan terbengkalai untuk melakukan hubungan seks pada waktu malam.","lastmod":"2026-07-11","duration":"32:30","url":"/play/19167536.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjgvNGY4MWY3MDlhNDM2ODc5NDUyNTdlNGI4ZjkyMGMxMGMuanBn.cache","vod_id":19054768,"title":"Seorang pekerja kolar putih yang pemalu bermain-main di dalam bilik peribadi, bermain-main dengan vulvanya yang lembut sehingga ia melimpah dengan cecair yang penuh nafsu, kemudian memancut di dalam dirinya.","lastmod":"2025-09-27","duration":"23:35","url":"/play/19054768.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDIxOTAzNGFmMzU1Y2JkMDY2MjAyMDBmM2E4NGI4N2QuanBn.cache","vod_id":19140638,"title":"Seorang gadis berambut merah dan montok berpakaian seragam menggunakan bahasa yang tidak senonoh dan terlibat dalam interaksi menggoda, bermain dengan payudara, kelentitnya dan melancap dengan prop.","lastmod":"2026-01-28","duration":"30:11","url":"/play/19140638.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTcwZjE5YWM5ZDdiZmQ4NTE2YTYwNzY0MDBiYTA3YmUuanBn.cache","vod_id":19154319,"title":"Pengaruh bulatan mikro -- Sumber seks Feifei bocor","lastmod":"2026-04-20","duration":"12:23","url":"/play/19154319.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTJjNmEzMjAzOTZkZDg2Zjc0NDNhYzBjZGQ3MjM2ZjYuanBn.cache","vod_id":19004720,"title":"[Skandal Dalam Talian] Satu video yang bocor di platform tertentu menunjukkan seorang selebriti internet yang manis dan seksi, Du Chenying, menjalinkan hubungan sulit dengan suami sahabat baiknya.","lastmod":"2025-03-23","duration":"16:59","url":"/play/19004720.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmNjNmFiNGU1ZjE3NmQxMzIzOWRjMzI2NjAzYTE5NGQuanBn.cache","vod_id":18948703,"title":"\"Otaku✅Berkualiti Tinggi✅Manfaat\" ⭐Belia Invincible⭐ Beratus-ratus Ribu Pengikut Selebriti Internet [Yi Hui] - Pelbagai Pakaian Seksi, Tarian Bogel Provokatif, Susuk Tubuh Seksi Kelas-S, Sangat Menggoda, Sangat Membangkitkan - 20220301","lastmod":"2025-12-14","duration":"01:34:19","url":"/play/18948703.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjhlYmIzYTE0OTBlMTQyOTgwYWZlZjYyNjljZDEwYzEuanBn.cache","vod_id":18966614,"title":"Menunjukkan wajah anda adalah kuncinya! Aisha, bekas influencer Pornhub dan pelajar Shanghai yang telah meninggalkan dunia hiburan, merupakan seorang wanita yang sangat rambang mata dengan penampilan yang halus, terlibat dalam pelbagai bentuk seks dan ejakulasi. (7)","lastmod":"2025-12-14","duration":"00:16:44","url":"/play/18966614.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNGRkODM1Y2Y4ODNlYmVjYTFkMDg1YjNiZTE3NGU1NjkuanBn.cache","vod_id":19137407,"title":"Model wanita terkemuka, Little Strawberry, selebriti internet generasi pertama, seks tanpa perlindungan","lastmod":"2026-01-08","duration":"01:26:32","url":"/play/19137407.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjlmOTM3ZDU4ZjBkY2YwZGY3OGNhMzc2Y2QwYzQyNTMuanBn.cache","vod_id":18929524,"title":"Seorang gadis berambut perang yang cantik, [Dewi Farah], sedang melancap di atas sofa bujang, menjilat alat penggetar, memasukkan jarinya, mengerang dan tercungap-cungap. Sangat menggoda, jangan ketinggalan!","lastmod":"2025-12-14","duration":"00:54:22","url":"/play/18929524.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2IyNDI0MWVjMjQyNmRkMTE0ZTVhMGQ1Mjg2ZGM0NmMuanBn.cache","vod_id":18957009,"title":"Kehidupan seks harian pasangan muda: Seorang wanita yang memakai stoking jala dan berkaki panjang melakukan hubungan seks di bilik mandi, termasuk adegan tekak dalam dengan wajahnya terdedah.","lastmod":"2025-12-14","duration":"00:21:47","url":"/play/18957009.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzAyZmMwOTk0ODM1ZTk5ZGQyY2E3NTdlNGM5Mzk3NTkuanBn.cache","vod_id":18982062,"title":"IMO-023 Semasa melancap di bilik mandi, kakak saya yang bogel tiba-tiba menyerbu masuk! ? Ejakulasi sumbang mahram adik-beradik yang dilarang (3)","lastmod":"2025-12-14","duration":"01:47:10","url":"/play/18982062.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTA2ZTQ3NGFhOTg5NTRlZDhiODU2YzczNmJiYjU5MDYuanBn.cache","vod_id":18953550,"title":"\"Selebriti Internet Tegar✅Peringkat Teratas✅Berita Terkini\" - Diari Disiplin Seksual oleh Charin, Wanita Berkaki Campuran dengan Kaki Panjang, Loket Indah dan Payudara Besar, Diikuti Beribu-ribu Orang (9)","lastmod":"2025-03-22","duration":"00:01:37","url":"/play/18953550.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDY2YmE0ZGQ0NjdjOGIwZGYyYmNhZjY4NGFkZWQ4ZjEuanBn.cache","vod_id":18927414,"title":"Platform comel (dahulunya Kawaii) wanita matang genit pelacur luar 1108 lewat malam berhubung untuk seks secara langsung di luar seks oral dan berdebar-debar, sangat lucah","lastmod":"2025-12-14","duration":"00:16:47","url":"/play/18927414.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTIvNWM0MDRiYjZlOTc1MDZmNjRlNTM5Yzg4NmIyNGJjYmYuanBn.cache","vod_id":19057250,"title":"Pakar itu, Abang Ren, membuat penampilan pertamanya tanpa penapisan, melakukan hubungan seks dengan seorang pelajar tahun pertama kolej berusia 18 tahun yang mempunyai bakat atletik.","lastmod":"2025-10-11","duration":"12:05","url":"/play/19057250.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTU4ODc2YjI1MjlhM2Y5YjE5ZGM0YzY3ZDA4MjhmMTAuanBn.cache","vod_id":19148945,"title":"Kecantikan peringkat tinggi tujuh hari, kecantikan sekolah peringkat tinggi, perempuan murahan berpayudara besar peringkat tinggi, terlalu hebat!","lastmod":"2026-03-18","duration":"01:01:55","url":"/play/19148945.html"}]},
videoTitle: '[Selebriti Internet] Seks melancap Nina, wanita matang seksi peringkat atasan, bocor',
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=/`;
}
};
}