Specializing in finding older women and young men, specifically looking for women in their 50s and 60s to play 3P and 4P, quite lewd.","lastmod":"2026-07-11","duration":"01:50:38","url":"/play/19161599.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmJmNDFhMmQ3YTc4ZDA3ZjU5NWQ2YWExOTkxNmExNmUuanBn.cache","vod_id":19011897,"title":"300MIUM588 [Tall, model-like beauty] I'm at work, but my boyfriend is cheating on me... Whatever happens, let nature take its course! So, let's escape reality, have some fun, and enjoy the most exciting NTR sex! Then he unexpectedly said, \"To be honest, I've always wanted to have sex\": Why didn't you skip work today? 13 in Kinshicho...","lastmod":"2025-03-24","duration":"01:14:12","url":"/play/19011897.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmNkY2I1Mzc1ZTBjNTQ4ODkyYTU3ZjNlNDU4YzQ5M2UuanBn.cache","vod_id":18962198,"title":"[Chinese Subtitles] FOCS-108 I was seduced by my lecherous college student neighbor... He used me to get revenge on my boyfriend for cheating, and raped me again and again. Misaki Manatsu","lastmod":"2025-12-14","duration":"02:06:48","url":"/play/18962198.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjAwNThiYWFhNDg4MDQ5ODI4YzExOGYxNTliNDRiMzIuanBn.cache","vod_id":19135208,"title":"The big-breasted young woman's breasts jiggling wildly is so stimulating.","lastmod":"2025-12-25","duration":"51:45","url":"/play/19135208.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOGUwNjhmOGRjODEwNjQ5YWY5MGRhNmY2NjFkZDQwNTMuanBn.cache","vod_id":19143357,"title":"Big-breasted young woman with natural pendant-shaped breasts","lastmod":"2026-02-14","duration":"42:06","url":"/play/19143357.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOGY0NjZmZDlmNGU3MmViZjU5YTBhMmQ2MWE0ODkwYjMuanBn.cache","vod_id":19156816,"title":"A very pretty young woman was invited by her older sister to play a 3P, where a fat guy, a big black bull, played with her pussy, rubbed her breasts, gave her oral sex, and had a huge penis. He was then picked up and fucked repeatedly. She was really horny.","lastmod":"2026-05-06","duration":"47:53","url":"/play/19156816.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDAzYzBkNTM1MTQ1MWZlNDAwZTAyNzM3NjNmNzQyNjEuanBn.cache","vod_id":19147112,"title":"Young, exquisite bespectacled housewife","lastmod":"2026-03-08","duration":"27:42","url":"/play/19147112.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDE3NWJjZTkwMzA3MDBjMTUwMTM0MzJjYmZiMWY5MDQuanBn.cache","vod_id":18967031,"title":"A stylish, young, white-collar woman masturbates at home after work, using a vibrator for stimulation. Her expressions are seductive, and close-ups show her squatting down, her fingers spreading her vulva, and her juices flowing onto the floor.","lastmod":"2025-12-14","duration":"00:39:31","url":"/play/18967031.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTEvNDVkYmQ4NmIxYWRhNzVhNTI1NDNjOTI0YjJiNGJkOWUuanBn.cache","vod_id":19033076,"title":"A naive vocational school girl was involved in a sexual encounter with a young man in a hotel; one of the girls was even menstruating.","lastmod":"2025-05-11","duration":"44:15","url":"/play/19033076.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDBjZTQ0YWQzZjhkYTliYjZkYjRjZDc5YjMwYmE4YTguanBn.cache","vod_id":18996306,"title":"HND-602 Shinoda Yu, an unwilling wife who cheats on her husband and is penetrated.","lastmod":"2025-12-14","duration":"01:58:32","url":"/play/18996306.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmMwNmRhYTRhMWUxOTViN2I0MjFmYTAzMmQwNTQ0MzIuanBn.cache","vod_id":18935374,"title":"A beautiful young woman from a respectable ethnic minority family in Guangxi, unable to repay her gambling debts at exorbitant interest rates, is forced to have sex with her creditors as payment. She looks unwilling, but she's quite well-maintained. (Dialogue in local dialect!)","lastmod":"2025-12-14","duration":"00:16:55","url":"/play/18935374.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTIvZDc0OWQwMTE4NTFmYmQ2YTBjMmZjNDY3YzU5OTNkZDYuanBn.cache","vod_id":19057194,"title":"Model - Forced Sex with Innocent High School Student, Indulging in Extravagant Orgasms - Yuan Ziyi","lastmod":"2025-10-11","duration":"35:56","url":"/play/19057194.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWRmM2IyZGZkMmY0NTJlOTAzZTE2ZDA3OTU2ODIyZTAuanBn.cache","vod_id":18987343,"title":"Jingdong Pictures JD031's cheating wife","lastmod":"2025-03-23","duration":"00:27:00","url":"/play/18987343.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmM5Y2M5ZTRmOTJhNDZlMTU3YmE5ZGIyYzkxMDQzZmQuanBn.cache","vod_id":18945841,"title":"A charming young woman wearing glasses and having sex with her partner, showing off her voluptuous figure and engaging in extremely lewd oral sex.","lastmod":"2025-12-14","duration":"01:42:01","url":"/play/18945841.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzc5Yzg0OGNmOTc3MzE3YjI5ZDkxNDdlYTZhMzkyM2MuanBn.cache","vod_id":18943117,"title":"[The Goddesses' Lewd Night] Super Shocking - 4 Women and 2 Men Group Sex in a Hotel, High-Value, Top-Body Goddesses Slutfully Licking Each Other and Waiting to Be Fucked, The Scene is Lewd, Exciting, and Grand.","lastmod":"2025-12-14","duration":"03:19:10","url":"/play/18943117.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNmE3MjYxOTdmODc5NzdjM2E3ZjQzNWRhOTFkOTllZWYuanBn.cache","vod_id":19141224,"title":"A sexy, mature woman in black stockings is giving a live stream, seductively licking a dildo, kneading her breasts, playing with props, and even licking her toes. She looks incredibly alluring!","lastmod":"2026-02-02","duration":"56:22","url":"/play/19141224.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTJhYjEwZGM2ZTQ3M2VhNWE1ZWYyZDJlMGYyOTg0OTAuanBn.cache","vod_id":18976974,"title":"A beautiful young woman with long curly hair reveals her face; she is in a cowgirl position with no condom; she uses all her skills to manipulate the woman, including traditional missionary sex where the man ejaculates on her vulva.","lastmod":"2025-03-23","duration":"00:30:39","url":"/play/18976974.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjExNTBjZWRlMjM4ZTVkOTI3MWE2MDk5YzM2N2QxOGMuanBn.cache","vod_id":19141920,"title":"The surveillance footage was hacked, and a middle-aged man and a voluptuous young woman were caught having sex in a hotel room.","lastmod":"2026-02-06","duration":"54:52","url":"/play/19141920.html"}]},
videoTitle: 'MSD008_The glamorous, promiscuous, and sexually addicted young woman who cheated on her husband, Yuan Ziyi.',
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=/`;
}
};
}