Rich Man's Sexual Encounter with Female Student","lastmod":"2026-07-11","duration":"23:51","url":"/play/19164655.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDlhNGY3ZWM1YTA5YTJhNWIzZDFiYmY0NDE2OTEzMGUuanBn.cache","vod_id":19012574,"title":"SIRO4057 [First Shooting] [Asexual and Immoral Housewife is...] [Beautiful BODY Teacher] A gentle and beautiful housewife has intense sex with a man she just met... Applying for AV online → AV Experience Shooting 1162 Mr. Okukawa, 32 years old, elementary school teacher (incest).","lastmod":"2025-03-24","duration":"01:02:26","url":"/play/19012574.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTYwYjY3ZjI2OWJiYzc1ZTc0MWVhYTE2YzljNzBkYzcuanBn.cache","vod_id":18950845,"title":"The newly arrived female lead sisters give a passionate performance with full nudity, flirting and interacting with the male lead while also appearing shy. The sisters even engage in masturbation using props, moaning and groaning wantonly. Don't miss this exciting show!","lastmod":"2025-12-14","duration":"01:50:06","url":"/play/18950845.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmMzZDk2MWU0ZDQ3ODBjNGYyOGNhMmY2MjYyZTRkODEuanBn.cache","vod_id":18951949,"title":"IENE-952 Five stepmothers want to be young and beautiful wives, and I am the only man.","lastmod":"2025-03-22","duration":"02:21:41","url":"/play/18951949.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvODIxYjMxZjUzMzk5MGNiZTcxMWE2MjA5ODdkOGQxMmYuanBn.cache","vod_id":19169106,"title":"The most passionate office sex HU-779","lastmod":"2026-07-20","duration":"02:33:40","url":"/play/19169106.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvMDdkZDE3MDczNzEyY2JkM2Y4YzYwMjllZWRjMzVlMDUuanBn.cache","vod_id":19064922,"title":"A beautiful girl teases her partner in a personal POV – sex where she completely submits to an older man!! Mizuho-chan, a female college student named Aoi Mizuho (葵井みずほ) CHC-024","lastmod":"2025-12-14","duration":"01:31:27","url":"/play/19064922.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjM0ODUzNWE2NzQ2OWYwNjk3MDhiZmM2MjgzMTBjYzguanBn.cache","vod_id":18975487,"title":"MDBK-128 A female student's hypersensitive nipples are played with, reaching peak sensitivity and bringing her to an ultimate orgasmic sexual experience! 2","lastmod":"2025-12-14","duration":"03:14:03","url":"/play/18975487.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGU3ODQ2ODZkYTA3YmVkMGE0MjAzM2JlMDZlMDE3MjYuanBn.cache","vod_id":18926461,"title":"RCTD-279 Two friends' girls experienced a lesbian nipple twisting experience.","lastmod":"2025-12-14","duration":"02:00:12","url":"/play/18926461.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTkxZDAwN2FlOWE3M2VkZDEyMzU5MjUxZDZmZDA4MjIuanBn.cache","vod_id":19007827,"title":"JUY846 Amazing Bar NTR ~After being invited by a friend, the wife became addicted to the Amazing Bar and was slept with by a lecherous senior at some point~ Arisaka Miyuki.","lastmod":"2025-03-24","duration":"01:56:37","url":"/play/19007827.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjllOWZhZTc5NTFkNWQzNDg3NjI4YmM3NDhhMzI4MWQuanBn.cache","vod_id":18994469,"title":"[Lesbian] [Lily Sisters] Two young and beautiful lesbian sisters have a passionate sex life with fast, strong, and skillful hands!","lastmod":"2025-03-23","duration":"24:41","url":"/play/18994469.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTY3NGYwMjQxYzg4YjViYTBkYTZlN2I5MDlkNTI3NDguanBn.cache","vod_id":18996189,"title":"My Friends' Mothers (2018)","lastmod":"2025-12-14","duration":"01:14:00","url":"/play/18996189.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzI2MDFjMDJjNGQ1YzMzMmM3MjgxM2RlOGFmNDQ0YWIuanBn.cache","vod_id":18939157,"title":"[Chinese Subtitles] OKS-083 Wet, Shiny, Tight: Shinominami's Sacred School Swimsuit. Enjoy this cute girl in her school swimsuit! Starting with a secretly filmed video of her changing clothes, enjoy close-ups of her small breasts, large breasts, shaved pubic area, hairy pubic area and armpit hair, as well as a lotion bubble bath, school swimsuit group sex and vigorous ejaculation, all of which happen while she is fully clothed.","lastmod":"2025-12-14","duration":"01:33:31","url":"/play/18939157.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2NmNTNlNjg4NWRmMDNiZTZlODY4NjA0Nzc2ZTAxY2QuanBn.cache","vod_id":18973371,"title":"[Chinese Subtitles] MIMK-115 Dark Sea ~A sexy older sister who seduces an innocent boy with her sexy figure~ Yuria Yoshine","lastmod":"2025-03-23","duration":"01:55:14","url":"/play/18973371.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGJlMjY3NzhmNWIwMGJiYmEzOWZjZDg5NGM1NmYyZTguanBn.cache","vod_id":18955238,"title":"[Chinese Subtitles] YRH-080 Human Observation Files Episode 18","lastmod":"2025-03-22","duration":"03:59:48","url":"/play/18955238.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTVjMGQxM2VlYTJiNjM1ZTdjMjQ2NjE4OTNmMmYwYzMuanBn.cache","vod_id":19017967,"title":"YMDS096 Lovemaking at home, drinking, passionately kissing, and having sex with Tanaka Nana while she was fully clothed.","lastmod":"2025-03-24","duration":"02:14:39","url":"/play/19017967.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDJmOTZjZDU2Njg0MWViNzJkZDM5NjdiNDliMzNjOWUuanBn.cache","vod_id":19004906,"title":"IPZZ-068-C ≪Uncut, Real, Hot Sex≫ Intertwined Passionate Sex x Endless Pursuit of Sex","lastmod":"2025-03-23","duration":"02:07:46","url":"/play/19004906.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjk3OTgwNjEyZDM4ZmZhNzNjN2QxY2MxYTNmN2Q4MTIuanBn.cache","vod_id":18953924,"title":"OYC-095 Of course, it was filmed as an AV! My handsome friend brought a drunk girl to my room.","lastmod":"2025-12-14","duration":"02:08:02","url":"/play/18953924.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2VmNGU3ZDY0NmZkZmU2MmI3OWJkMTU2NDc4YzllODcuanBn.cache","vod_id":18953830,"title":"NPS-360 Three mothers star in an AV together!! Married woman collects documents - husband not seen.","lastmod":"2025-03-22","duration":"02:38:38","url":"/play/18953830.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNThkMzc3NWFlZGQ3NTE2ZjRkN2M2MWM1Mzg2ZWRmN2IuanBn.cache","vod_id":18978744,"title":"MDTM-314 The Female Student Hunting Her Father: Dangerous Primal Sex and Cumshot, Kanon Kimiiro","lastmod":"2025-03-23","duration":"02:31:05","url":"/play/18978744.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDU1MjlmYTliOTQ4ZDk5ZWRhYTNjNmE0Y2EyZjkxMjMuanBn.cache","vod_id":18966380,"title":"FC2PPV 3215810 is a shocking secretly filmed video that records the private sexual activity of a fair-skinned woman with an F-cup bust. Although she consented to being filmed beforehand, she appeared confused.","lastmod":"2025-12-14","duration":"00:52:12","url":"/play/18966380.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGQ4Nzc3MDA0YzZiZGI0N2I3OTZhNjk1NWNkZmI4MTkuanBn.cache","vod_id":18935825,"title":"[Chinese Subtitles] HODV-21456 Excessive Tutoring: I-Cup Big Breasts Special Guide ◆ Matsumoto Nanami","lastmod":"2025-03-22","duration":"02:13:47","url":"/play/18935825.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDcvZTg1NzBjZDFlYjI5ODNmNDI1ZmYyODJjYTAzZDM0ODYuanBn.cache","vod_id":19041741,"title":"START299 My boyfriend was talking about his admired female boss, and he ended up getting caught up in a lesbian cuckolding frenzy.","lastmod":"2025-07-06","duration":"02:20:38","url":"/play/19041741.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTRhNDgyODY3NWJkNGVlYjgxYWE2ZTU3MmM0ZDUxMGYuanBn.cache","vod_id":18984136,"title":"[Chinese Subtitles] HMN-444 Do you like breasts so much that you can go to a breast bar? Her husband went to a breast bar the night before their wedding anniversary, and she jealously gave him a blowjob!","lastmod":"2025-03-23","duration":"01:57:42","url":"/play/18984136.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmE5YzM4ZDAyYzRkMmMwMzQ4NWEzZWYzZWM1YjBmMTUuanBn.cache","vod_id":18937991,"title":"SDAB-103 Mayuri Nishikura: Sexual Intercourse with an Older Man: Exchanging Bodily Fluids - Kissing, Licking, and Swallowing Saliva","lastmod":"2025-12-14","duration":"02:20:14","url":"/play/18937991.html"}]},
videoTitle: '[Chinese Subtitles] YMDS-124 Sweet Drinking at Home, Passionate French Kiss, Intimate Sex - The Day Yui Haneda Became My Girlfriend',
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=/`;
}
};
}