DANDY-626 [A busty tutor is alone with me in a room where the air conditioner is broken! I can see her bra and it makes me erect! We have sex in a riding position while we're covered in sweat] VOL.1
My annoying father-in-law climbed into my room at night…Kurokawa Sumire 黒川すみれ WANZ","lastmod":"2026-07-11","duration":"01:58:26","url":"/play/19163074.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDM0YzM4MjI2ZGYyZTAzODEzNDMzNTQyOTRiYWNhOGUuanBn.cache","vod_id":19000391,"title":"A busty young woman had her ex-husband ejaculate inside her in her kitchen.","lastmod":"2025-03-23","duration":"57:16","url":"/play/19000391.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjEvZGM2OWMxOTkwMTA1NDI0MTY0NDJlODE5ZTYyMDAxMjYuanBn.cache","vod_id":19063802,"title":"Amazing technology lets Miyako Tsukiru Sasa do how to have sex! Miyako Tsukiru Sasa XVSR_773","lastmod":"2025-12-14","duration":"02:03:01","url":"/play/19063802.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTY1ZTY2ZjU1YjBhNTVlNWEyNDRhODQ0ODA2MTE0MTguanBn.cache","vod_id":18993560,"title":"PPPD-783 A Lewd Body That Makes Men Erect: Big-Breasted, Sensitive Escort Girl Nanami Matsumoto 1","lastmod":"2025-03-23","duration":"02:34:59","url":"/play/18993560.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvMTczODI3YWYwMGI5NTgwMGJhMDJjZDlmZWM2ZmFmODQuanBn.cache","vod_id":19167754,"title":"The fact that I actually fell in love with the dream goddess Xin Youli during rough sex made me like her.","lastmod":"2026-07-11","duration":"17:00","url":"/play/19167754.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTkvZWU4N2Y5YzBiN2RiZjU3MjljODRlM2ZmMmFhNGI0ZDAuanBn.cache","vod_id":19039084,"title":"BANK205 Busty Housewife on Hot Spring Date, H-Cup & Hairy, Lewd Talk, 32-Year-Old Woman","lastmod":"2025-06-19","duration":"02:05:26","url":"/play/19039084.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTQ5NDU0MmZiZWUxZWJiYjQ4MTdkOTdhODkyMzRiNTcuanBn.cache","vod_id":19004840,"title":"Busty model who was sexually harassed by photographer","lastmod":"2025-03-23","duration":"20:42","url":"/play/19004840.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODE4OTY4N2RmMjY1MGEwODJmZTk1OWQ1ZDkxMmNjNTMuanBn.cache","vod_id":18931863,"title":"CJOD-214 I was secretly seduced by my sisters, who were secretly not wearing underwear or bras.","lastmod":"2025-12-14","duration":"02:00:08","url":"/play/18931863.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmNjMjZjZjM2YzUyYzVkZWNmZmRhZTA3YzNjMWJkMjcuanBn.cache","vod_id":18994451,"title":"[Lesbian] [Multiple Wife Swapping] Multiple wife swapping is being offered in a hotel, with long queues of people engaging in group sex, including lesbians. The entire room is filled with moans and groans!","lastmod":"2025-12-14","duration":"08:00","url":"/play/18994451.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzE0NWQxODE5OWMzMWVjOTI0NTNlZjljOGU3ZDgwN2EuanBn.cache","vod_id":18950836,"title":"[Chinese Subtitles] HND-420 Although I've never tasted my husband's semen, to be honest, I really like it... This is the first time I've wanted to be penetrated by another man since getting married! A real housewife currently working as a nurse will be filming her first AV without her husband's knowledge, swallowing his semen. Anna Tono","lastmod":"2025-03-22","duration":"01:58:16","url":"/play/18950836.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjgvY2IyNGMzNzg5ZTVhN2E4YThkYjA4YTAzOTQ2NDA5Y2YuanBn.cache","vod_id":19048810,"title":"IPZZ478 My girlfriend, a busty woman, unconsciously flaunted her braless nipples and used her natural lewdness and sexiness to seduce me.","lastmod":"2025-08-27","duration":"01:58:44","url":"/play/19048810.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODBlYmNlYjU4MGQxNWNhNGQ0MTEyODRlODY5NDNhNmIuanBn.cache","vod_id":18955301,"title":"[Latest Sex Leak] Green-haired Gen Z bitch with pierced cheeks and mouth, training and sex selfies leaked; large, firm breasts; horny girl having wild sex; perfect face reveal; HD 720P version.","lastmod":"2025-12-14","duration":"00:16:04","url":"/play/18955301.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDA4NmU2Mjk4MzVjMzJhYzJhNDMyYzczNmZiNThmNGIuanBn.cache","vod_id":19138385,"title":"The cousin wanted to use sweet words, and since she loved her cousin, she used every trick in the book to seduce him with her underwear until he got an erection! (Unknown actor SW-1013)","lastmod":"2026-01-14","duration":"03:20:13","url":"/play/19138385.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzVhMGI1NjcxMDEzZWZiODgxMTllY2M0OWVlYzI2NmQuanBn.cache","vod_id":18995251,"title":"[HD Encoding] ABW-285 Breast NTR, Worst Iku Erectile Video, My Beloved Girlfriend Promised Happiness, But Was Taken Away by an Older Man","lastmod":"2025-03-23","duration":"02:20:06","url":"/play/18995251.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjgvMDg0OGNiNDg4ZTIwZmU2MjhjNjIxYzY4YzI5MDgyNGQuanBn.cache","vod_id":19031238,"title":"A tutor who has sexual relations with her family and is preparing to give birth, starring Akimoto Yuika, Momoiro Bambi, and Wakaba Kurumi, etc. FSET-318-C","lastmod":"2025-04-28","duration":"02:24:45","url":"/play/19031238.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTIyZTMxZGRiMGVhMmJhMTllZTM2ZGI0NDYzMzdlMjcuanBn.cache","vod_id":18973606,"title":"XVSR-113 Super!! Breaking the Limits: 150 Consecutive Orgasms with Huge Breasts, Asami Nagase","lastmod":"2025-03-23","duration":"04:00:23","url":"/play/18973606.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzU0ZDMxY2QzMGYwY2Q2MThkNjA5MGY3ZDgwMWEzN2MuanBn.cache","vod_id":19007006,"title":"A seductive young woman in a red lingerie seduces her neighbor into having sex.","lastmod":"2025-03-24","duration":"17:30","url":"/play/19007006.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjBlMmE3NzhkNGE1ZWU3Mjg1ZDAyYTc4NTU3YTdmNjkuanBn.cache","vod_id":18991535,"title":"261ARA-330 [Big-breasted beauty] 24 years old [Men are food] Touka-chan is here! A fitness instructor, her reason for applying is \"I've always wanted to taste male actors♪\" She possesses a well-trained and sexy figure! A beautiful woman secretes an incredible amount of vaginal fluid! Like a spider web, a beautiful, perverted woman acting on instinct! [Powerful oral sex][A wonderful breast play where you might accidentally ejaculate] The instructor who devours men shakes her ass vigorously! You must see her orgasm in the cowgirl position! \"By the way, sperm is a drink.\" 1","lastmod":"2025-03-23","duration":"01:22:31","url":"/play/18991535.html"}]},
videoTitle: 'DANDY-626 [A busty tutor is alone with me in a room where the air conditioner is broken! I can see her bra and it makes me erect! We have sex in a riding position while we're covered in sweat] VOL.1',
language: 'en',
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('Link copied!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Link copied!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Link copied!');
}
}
},
// 切换布局
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=/`;
}
};
}