The thing that becomes very erotic after juxtaposing sex selfies and ordinary conversation videos. () Misaki Kanna, Otoha Misuzu Father's Personal Footage","lastmod":"2026-07-11","duration":"","url":"/play/19206905.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWJkZjIzMmJmYWU4NjRlOGVjN2E5YzczZmUxZDI3NGEuanBn.cache","vod_id":19105806,"title":"91 Daige Series 066 - Latest Hot Masterpiece: High-Value Car Model Amy's Husband Checks Up on Her Husband While Having Sex with Him and Answering the Phone, Moaning and Making Herself in His Ears - Dating Phone Series - Ultra HD 1080P Collector's Edition!","lastmod":"2025-03-26","duration":"0:35:21","url":"/play/19105806.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjI4YThlMGI0ZDI5NTdhYWJhYjI3ZGYxNjZlYWU2MjAuanBn.cache","vod_id":19110509,"title":"Boldly Cheating Series: Sweet Romance with Boyfriend","lastmod":"2025-03-26","duration":"0:10:20","url":"/play/19110509.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZWE1OTlmNjJhMjM4ZjIxMDAyNGEzZmU3YmJiN2RiMDguanBn.cache","vod_id":19189554,"title":"Massage parlors featuring young men engaging in sexual acts with married women, sometimes pushing them down, sometimes forcing them, and sometimes touching their breasts and groping them for a thrilling and stimulating experience.","lastmod":"2026-03-29","duration":"0:41:59","url":"/play/19189554.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTQ1MDk3Nzk5ZDkzOWMwNTY0NTczZjNjOTQ0ODIwMjIuanBn.cache","vod_id":19113653,"title":"Tan Hua Series - High-priced hotel appointments with tattooed women with full-sleeve tattoos","lastmod":"2025-03-26","duration":"0:17:26","url":"/play/19113653.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMWE3YzE1ZmQ2MWFhYWU4YjE0YjBjNGFmODI2M2RhYWUuanBn.cache","vod_id":19201977,"title":"Flying Elephant International Series: Picking Up Girls in Thailand","lastmod":"2026-05-29","duration":"0:45:54","url":"/play/19201977.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTJiYjQ2YjZmYjg3NTk0MzIxMWYyNzU0YjNiOWZkNzMuanBn.cache","vod_id":19124782,"title":"IPZZ108C I hate my boss, but I ended up staying in a room with him at a hot spring hotel during a business trip... and I had to ejaculate with this ugly, masculine old man again and again.","lastmod":"2025-03-26","duration":"1:57:58","url":"/play/19124782.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMGMyNjMyYzNlYWQ2ZTYzNzJiYTYzYzViODRiYTQ3NTIuanBn.cache","vod_id":19176487,"title":"A stunningly beautiful mature woman was having an affair in a hotel, clearly enjoying herself immensely. She was the one doing all the work, especially during the act, while simultaneously French kissing and saying how good it felt, saying she couldn't hold back her erection.","lastmod":"2026-01-26","duration":"0:09:12","url":"/play/19176487.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDUvYWZlOTkwOTFmN2U5YThjMTAyYjY0YTA3NmZhMzczNDIuanBn.cache","vod_id":19162536,"title":"Rabbit Driver Series Pile Driving Exercises Shanghai Husband","lastmod":"2025-11-04","duration":"0:17:46","url":"/play/19162536.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNTg3YzMwOTM3MzZmNzk4ZDVlMWI2YTJjOGQ4MmUzYmUuanBn.cache","vod_id":19171021,"title":"Gal Friend: The best sex with the best mistress. I want to enjoy pure pleasure with you all night long. Ran Raimeina (蓝瀬ミナ) RKI-725","lastmod":"2025-12-31","duration":"2:04:39","url":"/play/19171021.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZmU1NWNhMGYxMDFlNWFkNjg2NjAyMDdhZThmNjBmZDguanBn.cache","vod_id":19192219,"title":"Selected Welfare Content: Cuckolded Wife and Brothers Training a Bitchy Wife on the Ceiling","lastmod":"2026-04-12","duration":"0:20:47","url":"/play/19192219.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjI3NGRlNDEyMzIwMDIwNzc5ZTVmMjUzMzM2MTMyMTAuanBn.cache","vod_id":19082434,"title":"Let's skip school and class and make love together! When I woke up, there were unfamiliar people in my room who had run away from home - actresses such as Ena Satsuki, Miina Konno, and Kana Yura.","lastmod":"2025-03-26","duration":"2:28:38","url":"/play/19082434.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDZkMzc2ZWFlOWRkMmQ5MzZjMmQyZTU4OGQ1N2E1MGYuanBn.cache","vod_id":19121708,"title":"Model series Wave Monet.","lastmod":"2025-03-26","duration":"1:00:32","url":"/play/19121708.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGU0ZThiMGExM2Q2YjRmMmU4MWFlYTM3MDY0YjNkMGUuanBn.cache","vod_id":19087281,"title":"Three sisters give their brother oral sex in the kitchen &lsquo \"Stepmother Sex Education Series\" S4:E6","lastmod":"2025-03-26","duration":"0:37:30","url":"/play/19087281.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjY0YmU1NTQ1ODJhY2E4OWY5ODc1MjMyYzQwZDU3ZGQuanBn.cache","vod_id":19189845,"title":"A family engaged in an outdoor 4P orgy. The sisters, along with their brother-in-law and a handsome male fan, got carried away and joined in the lewd intercourse, thrusting and fucking each other.","lastmod":"2026-03-31","duration":"0:35:51","url":"/play/19189845.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZmFiY2UyMTBiOGMzYzg3NDkyZTM1NDhlZTBmNjg5MmEuanBn.cache","vod_id":19080101,"title":"Explosive gossip: Group sex at a restaurant in Northeast China - a cuckolded scumbag lets his friend have sex with his wife at the table.","lastmod":"2025-03-26","duration":"0:43:23","url":"/play/19080101.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjU0ZWE4OTljOWM4YzNmMDBlMWRmYTgxMjA0NWExMjMuanBn.cache","vod_id":19113519,"title":"Tan Hua Series - Meeting a Top-Tier Plastic Surgery Goddess at a Hotel: Her Figure Makes You Instantly Hard!","lastmod":"2025-03-26","duration":"0:49:30","url":"/play/19113519.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTIvMmFmNDIyZTg3M2QzYjVlNWZlZDgxMmMwNzdiZTg0ODIuanBn.cache","vod_id":19130584,"title":"Together with her crush, her female boss. (Gu Zi MOND-239-C)","lastmod":"2025-04-12","duration":"2:06:09","url":"/play/19130584.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTlkYTE1ZjFmZDY4NmJkMGFmM2ZlMDZiMWY5MWI3YzYuanBn.cache","vod_id":19066767,"title":"Yuka Mizuno's mature body was overwhelmed by a series of orgasms!","lastmod":"2025-03-26","duration":"1:59:50","url":"/play/19066767.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODU2Nzc3NWFjNzc0NWRhMTAyYjMyY2QzYmU3ZjRhNGQuanBn.cache","vod_id":19115179,"title":"Invite your boyfriend's friend to join a 3P1","lastmod":"2025-03-26","duration":"0:01:28","url":"/play/19115179.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzg2YTkzMDIyN2MyODRhNzA2YzEyZjZlY2ZjMjVmYTcuanBn.cache","vod_id":19189476,"title":"Rare resource: The most comprehensive collection of voyeuristic works ever made on the Guangdong subway, featuring married women and students.","lastmod":"2026-03-29","duration":"0:29:36","url":"/play/19189476.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MDkvMjIwNzBmZDQzNDUxNDk2MzA0MjFjYTg0OWU1NjUyZWMuanBn.cache","vod_id":19148480,"title":"SVCAO014 and her two daughters, raised for 18 years by their poisoned parents, embark on a pure mixed-gender hot spring trip.","lastmod":"2025-08-08","duration":"2:20:05","url":"/play/19148480.html"}]},
videoTitle: 'HEYZO 3393 and Mai Amao, let's get started! ~Beauty Series Vol.33~ – Mai Amao',
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=/`;
}
};
}