VOSS-111 "Tidak! Kalau aku mula sekarang... aku takkan pernah dapat berhenti!" Ibu tiriku kasihan padaku kerana aku masih dara dan hanya tahu melancap.
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/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/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmE1ZTIyODRiY2E3ZjVkYjYwNmEzMjk4MjhiMjFjMTQuanBn.cache","vod_id":18966327,"title":"300MAAN-674 [Seks Lolita Sah Yang Amat Tidak Bermoral] Gadis penjual bir yang comel, Tenten-chan, ada di sini!! Pakcik yang dipanggil","lastmod":"2025-03-22","duration":"01:25:36","url":"/play/18966327.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MDUvNzI4OGNiZTM1MzdjMzM0ZWFjOGQxYzE3NTE2ZmNiOTMuanBn.cache","vod_id":19027758,"title":"Saya mengalami pelbagai pancutan di dalam badan bos wanita saya yang berdada besar, Kiritani Mari, semasa dalam perjalanan perniagaan, menggunakan posisi cowgirl. Kiritani Mari MEYD-630-C.","lastmod":"2025-04-05","duration":"01:57:07","url":"/play/19027758.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZDc4NmE3ZGE3OGM0YWY4MWVhZTAyMGEzODJjZjg0NGUuanBn.cache","vod_id":19159203,"title":"Pengalaman jackhammer bogel pertama saya yang sangat memalukan - alat kelamin saya terdedah! Dubur saya juga kelihatan sepenuhnya! Tuas urut elektrik Primo","lastmod":"2026-05-21","duration":"03:57:25","url":"/play/19159203.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWNlOGM2NTFiY2JkMjRlZmU5MjE2Mjg5OWJhZTViZWQuanBn.cache","vod_id":19001879,"title":"[Media Langit Berbintang] Adik Perempuan Saya Tak Mungkin Secomel Ini 2: Bermain Susah Payah Untuk Menggoda Abangnya - Muna","lastmod":"2025-03-23","duration":"38:24","url":"/play/19001879.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGU2NmNkYmZiZjdhNDYyYmM3NzQ2N2VjZWE0NmMzNmQuanBn.cache","vod_id":18934202,"title":"[Sarikata Cina] DOCP-214 \"Saya di sini, maafkan saya!!\" Seorang pembantu rumah yang cantik ditugaskan untuk menyediakan khidmat domestik serta-merta ditembusi ke dalam punggungnya yang seksi dan besar sebaik sahaja tiba di rumah!! Dia menolaknya dengan kuat berulang kali...","lastmod":"2025-12-14","duration":"03:59:21","url":"/play/18934202.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDI5NTQxYWFiNDAwNjQwMzg1YWNiYmNhZjhmZWI2MTQuanBn.cache","vod_id":19022033,"title":"ABP862 Pasangan seksual saya ialah kakak saya dari sekolah yang sama. Hubungan sulit rahsia saya yang tidak terkatakan dengan kakak saya. Kawai Akira Hina.","lastmod":"2025-03-24","duration":"03:08:05","url":"/play/19022033.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2FmYjJhN2VkNmM2M2Y1ZjYwMDg2MDEzMmJkODBhNWQuanBn.cache","vod_id":19010874,"title":"MIDE727 CINASES SUB Tidak kira berapa kali anda pancut, orgasme tidak akan pernah berakhir! Urutan minyak erotik Miyu Misaki...","lastmod":"2025-03-24","duration":"02:29:55","url":"/play/19010874.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/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjhkNjM5N2U1MzQxMjQxNmQ0ZDc3ZDBlYTMzNmMwNDUuanBn.cache","vod_id":18980940,"title":"[4K]NSFS-115 Ibu Tiri dan Anak Lelaki - Untuk menyelamatkan anak lelakinya yang merupakan pesalah seks... - Yumika Saeki","lastmod":"2025-12-14","duration":"01:37:10","url":"/play/18980940.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/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWE3MTkzZDJmZGU3MGY1MmNhN2IwOGM0MzI4NzZjNWIuanBn.cache","vod_id":19005586,"title":"Selepas ditolak oleh 100 syarikat, harapan terakhir MIFD-256-C adalah untuk menjadi pelakon AV!! Jika saya tidak dapat menjadi pelakon AV, saya perlu pulang ke negara saya.","lastmod":"2025-03-24","duration":"02:29:16","url":"/play/19005586.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/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MDgvMjg0M2QxNGQzZjNjZDViZGZlZjkwYmEwOGIyODE4N2QuanBn.cache","vod_id":19045950,"title":"Siaran Langsung OVE 20.09.14 | Pejabat | Kemeja pendek biru muda dan skirt hitam | Stoking hitam dan kasut tumit tinggi | Kuku jari awak menusuk ke dalam payudara saya.","lastmod":"2025-08-07","duration":"36:51","url":"/play/19045950.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjhhOTZkNmYyNjgxMWVmYWY5YzQwNWViOTBjZDRjMmQuanBn.cache","vod_id":19151696,"title":"Ibu Perv - Ibu Tiri yang Berdosa","lastmod":"2026-04-04","duration":"43:15","url":"/play/19151696.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWExMDU0YjU5OGEzYmNkOTNlYThlMzEzMzMyNWFhY2IuanBn.cache","vod_id":18944985,"title":"Seorang wanita cantik berpakaian putih, dengan penampilan yang memukau dan sikap yang elegan, [Kucing Schrödinger], muncul dalam pakaian dalam dan menggunakan alat peraga untuk melancap. Gambar jarak dekat klimaksnya dengan zakar yang bergetar ditunjukkan. Sangat memikat, jangan ketinggalan!","lastmod":"2025-03-22","duration":"01:39:49","url":"/play/18944985.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmIxNTQ5MDA5NjYyMTJjYTBlZDI1ZTg5MzM3MjY4ZjUuanBn.cache","vod_id":19011168,"title":"HODV21432 Aku tergoda dengan bisikan yang hanya aku sahaja yang dapat mendengar, dan menamatkan keperawananku dengan memancutkan air mani di dalam badan Nagase Asami.","lastmod":"2025-03-24","duration":"02:26:53","url":"/play/19011168.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjA5OWNmNGU2MjBkMzZlMTUzOGNhNmFiYjFkMTFiMmEuanBn.cache","vod_id":18962043,"title":"Seorang perempuan jalang berekor kuda, melancap dengan penggetar dan jarinya dimasukkan ke dalam farajnya tidak mencukupi, jadi dia memasukkan zakar ke dalam mulutnya, dan mubaligh itu melakukan rutin jackhammer.","lastmod":"2025-03-22","duration":"00:47:04","url":"/play/18962043.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2NkZDUyYjFmN2YyNjNjOThmYmRiMDBlNjYxODExZjMuanBn.cache","vod_id":18991287,"title":"Kawan baik seorang gadis cantik dan manis diikat dan melancap dalam keadaan bogel di atas kerusi, menggunakan alat memasukkan zakar dan melancap untuk membuatnya mengerang. Ia sangat menggoda, jangan ketinggalan jika anda suka!","lastmod":"2025-12-14","duration":"01:05:33","url":"/play/18991287.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjUvMWEyM2U5ZWY1MjliZGFkMTk5NzE0Y2IxYjU1ZDk5YjUuanBn.cache","vod_id":19039878,"title":"HIGR075 Sayap Saya #AkimotoTsubasa","lastmod":"2025-06-24","duration":"01:27:22","url":"/play/19039878.html"}]},
videoTitle: 'VOSS-111 "Tidak! Kalau aku mula sekarang... aku takkan pernah dapat berhenti!" Ibu tiriku kasihan padaku kerana aku masih dara dan hanya tahu melancap.',
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=/`;
}
};
}