Big-breasted, long-legged woman betrayed by her husband in a 4P wife-swapping melee","lastmod":"2026-07-11","duration":"22:07","url":"/play/19167035.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzkxYzVkYjIxNDMyOGZkNjVlYWUxYmI5NTU5ZTg4NWUuanBn.cache","vod_id":19149986,"title":"MMD04 White Stockings - Lewd and Weak Voice HIFIraevr","lastmod":"2026-03-24","duration":"03:21","url":"/play/19149986.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWRlZTFjMWY4ZDc2ZDk5YTMzMGUwYzQ5YTRjNDc2ZTAuanBn.cache","vod_id":18958698,"title":"328HMDNC-547 [Beautiful Breasts and Curves] 29-year-old married woman with a voluptuous figure. Pick up a sexy wife and take her back to your room!","lastmod":"2025-03-22","duration":"01:00:16","url":"/play/18958698.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjQyMjdmYmIwNzJhZGExODNjMzFiMjIyYTFlYzM4MjIuanBn.cache","vod_id":18975408,"title":"FC2PPV 3366636 【Beautiful Witch, Mature Woman】This—Daughter's Bowl! Frankly, a mature woman alone isn't enough. I'm currently engaged in serious negotiations.","lastmod":"2025-03-23","duration":"01:00:47","url":"/play/18975408.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDUvMzcwZTViYjZkODE0NGI2M2FkYjJiZmFhNmVkNTk1ODQuanBn.cache","vod_id":19166729,"title":"A top-tier girl seduces a rich second-generation heir; how high and mighty she is on ordinary days, how lewd she is when she's being fucked.How high and mighty she is on ordinary days, how lewd she is when she's being fucked.","lastmod":"2026-07-11","duration":"12:59","url":"/play/19166729.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGI5MmM4Mjk1MTMxNWNiNmM5YTcyMmI2NWRjY2I4MzYuanBn.cache","vod_id":18966826,"title":"The masked gangster double-fed two top-quality married women, who were both lewd and seductive, serving him with oral sex, sucking his breasts, playing with his vagina, and being gang-raped and thrust into. Their constant moans and groans were incredibly stimulating.","lastmod":"2025-12-14","duration":"01:03:46","url":"/play/18966826.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjYvYTU0YjE5MWEwNTUxNzA0M2Q5MTMyNTdmNmRhNDE3ZWUuanBn.cache","vod_id":19054282,"title":"A slutty younger sister seduced me, licked me, and brought me to orgasm! #ShunkaSuzumura HGMJ017","lastmod":"2025-09-25","duration":"01:39:03","url":"/play/19054282.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjIyYjE3OWQ1MTkzMzViNjU2MGIzOWQ4OGExNTU1ZjIuanBn.cache","vod_id":18977062,"title":"DAYD-028 Daughter still has a cup while staying at home! Around noon, the father and son spend some mischievous time together.","lastmod":"2025-03-23","duration":"01:52:02","url":"/play/18977062.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjMvYTNlMzgyN2ZkZWM2NzMwYmMyOWYxNmVmNjJkOTdkY2MuanBn.cache","vod_id":19030453,"title":"The day I was hugged by my daughter's boyfriend and forcibly pushed down - Kana Morisawa ADN-426-C","lastmod":"2025-04-23","duration":"01:57:53","url":"/play/19030453.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODk3NTI1YTIxMTI1NWQ0MTJlMTZmNGU2ZWZkMzE0ODIuanBn.cache","vod_id":18923929,"title":"Parents do not know that their son and stepdaughter love each other.","lastmod":"2025-12-14","duration":"00:27:23","url":"/play/18923929.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZDIwOTg2MjFiNTM4MTEyM2JiM2EyMThhNzM3ZWIzYjguanBn.cache","vod_id":19159341,"title":"Do you dislike slutty mature women in their fifties? [Nian Yuan AV Starring] Passionate and Desirous Sexual Encounters: 5 Mature Women with Ultimate Sensitivity (12 MB)","lastmod":"2026-05-21","duration":"01:59:53","url":"/play/19159341.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmYxYzFlMzgzNTk0ZTY1MGI4ZmMyZjUxODFlNmMyYmYuanBn.cache","vod_id":19013766,"title":"HUNTA705 “I want you to penetrate my throat deeper…” I thought my stepsister was very serious, but in reality she is a super erotic and slutty woman who demands even greater intensity even after Irama… (incest).","lastmod":"2025-03-24","duration":"03:43:46","url":"/play/19013766.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTdhNjhhNDkyNjViZTYyYjBmNTFmM2ZiZWEwOTA0NzYuanBn.cache","vod_id":18953043,"title":"\"Does this little slut want to be fucked?\" Lewd dialogue ⭐ 91 hookup master's training and sex with a mature woman in black stockings, high heels, and long legs ⭐ Fully automatic cowgirl position with detailed penetration ⭐ Extremely immersive","lastmod":"2025-12-14","duration":"00:15:44","url":"/play/18953043.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWMxMWFlYTMyZTEyYTU4MGY4ZTU0OTcxN2RiOGJmNDcuanBn.cache","vod_id":18994996,"title":"[High-definition censored version] 435MFC-215 [Ejaculating three times in a row against a beautiful, elegant, and promiscuous dental hygienist] I want her to feel better than my wife...","lastmod":"2025-03-23","duration":"01:36:58","url":"/play/18994996.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjEvNGY1YWNjZjUwNTJhZWM1MGUwNWQzM2ZjM2FkZjA5M2MuanBn.cache","vod_id":19053668,"title":"A lewd female student.","lastmod":"2025-09-20","duration":"08:31","url":"/play/19053668.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzVmZmQ3ZTlhYWUzYmMxMGU5NjUwNmE1ZGRkMjllMGYuanBn.cache","vod_id":18957115,"title":"\"Personal Indecent Private Shots Leaked\" - Innocent Student Girl [Yoona] Shoots Numerous Lewd Videos to Sell for Money - Nude Dance, Stairwell Parking Lot Masturbation, Sex and Other Lewd Operations with Extreme Contrast (22)","lastmod":"2025-12-14","duration":"00:03:15","url":"/play/18957115.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjkvYmIyNGI2M2JiOGMzMzdjMDZlNjc2YjIzYTNhYzcyNGEuanBn.cache","vod_id":19165627,"title":"Wife Swapping and Flower Exploration 4P Passionate Sleepless Night","lastmod":"2026-07-11","duration":"28:05","url":"/play/19165627.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWQwNzYzZjJmNWZjODRlN2RlY2Q3NmIwYmQ1NDQ5YTUuanBn.cache","vod_id":18984112,"title":"MIZD-329 Feels great! More torture triangle! Penis, lips, nipples... Highly focused on erogenous zones! 74 super lewd harem selections.","lastmod":"2025-03-23","duration":"03:55:55","url":"/play/18984112.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzQyZDk2ODkwMjZiZmE5YjM2NDcyNmI5NGE0MDlmZTIuanBn.cache","vod_id":19146934,"title":"Masochistic men are creatures who need to be restrained. Lewd restraint, the M-switch. Mizuta Asami MOPT-048","lastmod":"2026-03-07","duration":"01:58:21","url":"/play/19146934.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDI5ZjY1YzFjZWI4YTM2MWZiOTM0MTkwYTNmZTBhNjcuanBn.cache","vod_id":18972867,"title":"LZDM-043 Stepmother forces daughter to undergo lesbian sexual development training with large breasts. (Takikawa Eri, Matsumiya Hishitomi)","lastmod":"2025-12-14","duration":"02:16:58","url":"/play/18972867.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjlhYmM4ZjgzMTlhYzQ0MDJlZGVkYjA2OTdiMGFmYjkuanBn.cache","vod_id":19026174,"title":"SSNI-433 A female teacher who had sex with her student from morning till night for two days while the student's parents were away. The forbidden sex between an extremely lewd teacher and student is now unleashed!! Nami Hoshino","lastmod":"2025-03-24","duration":"01:58:43","url":"/play/19026174.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjg1NWE2MTAxODc0NmQyNzZmZTgwYjVmMWJiODU1ZmUuanBn.cache","vod_id":19010926,"title":"MUDR090 Kaede Miku's earnest yet lewd Inaba Ruka...","lastmod":"2025-03-24","duration":"01:50:52","url":"/play/19010926.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGZkNjU4ZWRiNmYwZmZlMjBkNmZmOTYyMDBjNGFjZDUuanBn.cache","vod_id":19017081,"title":"MXGS1106 A lovely and loyal young wife is raped in front of her mother-in-law whom she is caring for, and realizes her own lewdness. Ameri Hoshi.","lastmod":"2025-03-24","duration":"01:55:11","url":"/play/19017081.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjgvODQ4YzZiODJmOWE1Y2I3YmZmMDQ3YjU1ZmM1NjE2ZGUuanBn.cache","vod_id":19048771,"title":"NASK185 Mother's big buttocks, sweating profusely, plump buttocks, her lustful son being raped and tortured in forbidden incest, 6 people, 4 hours.","lastmod":"2025-08-27","duration":"04:00:23","url":"/play/19048771.html"}]},
videoTitle: 'Li Rongrong Ai You MD0329, a lewd daughter, bids farewell to her parents; forbidden wife-swapping occurs on the eve of her wedding night.',
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=/`;
}
};
}