Hotel Manager Takes Under-Skirt Photos While Selecting Uniforms, Frenziedly Fucking a Perfect Married Woman and Ejaculating Inside Her","lastmod":"2026-07-11","duration":"","url":"/play/19245014.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzRmZTY5ZjE2MTk3YTRjZjU0ZTQ3MTM5NDRmODA5ZTUuanBn.cache","vod_id":19220551,"title":"SCPX-540 The Landlady's Huge Ass Temptation! A slutty housewife takes the initiative to ride, her plump buttocks shaking wildly to drain her of semen.","lastmod":"2026-03-06","duration":"2:01:45","url":"/play/19220551.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmZkMjk5MzczMjNmYWJhYzhlMmJjOGRiYzkxY2M0ZmEuanBn.cache","vod_id":19084034,"title":"A pretty young married woman was having a blast all by herself, showing her face the whole time, using a vibrator to rub her clitoris and thrusting into her pussy. Her hairless, white pussy was all swollen from all the playing.","lastmod":"2025-03-29","duration":"00:51:40","url":"/play/19084034.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MjMvYzRlOWJlYTYyYTBlNmJiMWIzNzhhOTJkNDQ1YjA4OGUuanBn.cache","vod_id":19177871,"title":"EBWH111 Arrogant photo idol gets drunk and dragged into a hotel; her H-cup breasts are groped and she is penetrated until she climaxes; a true account of her conquest through internal ejaculation.","lastmod":"2025-05-23","duration":"01:57:51","url":"/play/19177871.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzMyZDZlYzdhYmUyYjIyOGFmYzdkNzlhNWRiMWE5ODYuanBn.cache","vod_id":19058558,"title":"Sexy massage parlor owner traded her body for 4 pounds of honey!!","lastmod":"2025-03-28","duration":"","url":"/play/19058558.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2ViZTcyNWQ2ZTc2ZmQ3ZWMxNDM2ZDM1NGViMzk0ZDUuanBn.cache","vod_id":19053425,"title":"[China Pavilion] College student working part-time as a live streamer and male classmate with glasses take selfies in a hotel room.","lastmod":"2025-03-28","duration":"","url":"/play/19053425.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjQ5OWNiODM2NzUzNjc0ZDQ3ODNlYmFiNjIzNWZjZTkuanBn.cache","vod_id":19093225,"title":"BBAN-344 We are a pair of perverted lesbian couples who are excited about swapping. The sight of her deriving pleasure from another woman is just too cute... Hotaru Nogi, Rina Minami","lastmod":"2025-03-29","duration":"02:18:13","url":"/play/19093225.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZWQ3ZDM4NmE2NWIxNmE2MTllNWY4ZmMzNGYwMjZkMTMuanBn.cache","vod_id":19233602,"title":"Xiao Bao went to the Flower Goddess Hotel for a crazy, intense fucking session, his exquisite tender hole was pounded until he ejaculated inside her and squirted.","lastmod":"2026-05-08","duration":"","url":"/play/19233602.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWM0ZDY5YzU1MWFlZWIwMjBiOTAzMWMxZjFiNDRhYTkuanBn.cache","vod_id":19090470,"title":"[Chinese Subtitles] CAWD-529 \"Take You to the Sweetly Melting Swamp\" - Close-up Shots of a Sweet and Tortured Harem Girl Filled with Sperm! Blingerjok Love Hotel","lastmod":"2025-03-29","duration":"02:14:26","url":"/play/19090470.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzlkNWQ3NzA4ZTI5NTk2MzgwMDAyZGZiNzc2OTQ0YWMuanBn.cache","vod_id":19084428,"title":"FC2PPV 3157786 A sexy girl with stains on her pants before training even begins. A full-time nail technician at a beauty salon. Her signature color is red.","lastmod":"2025-03-29","duration":"01:18:41","url":"/play/19084428.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzFjOGZkMzgzN2U5YTZmOGFmODZiZGE4NDM1NzZmZjcuanBn.cache","vod_id":19039282,"title":"The clothing store owner was subjected to intense deep throat sex in a sexy black stockings bodysuit.","lastmod":"2025-03-28","duration":"00:07:45","url":"/play/19039282.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGViYjAyYjc2ZTAzNzg1ZThkZDQyMzQ3NzYwNThiZWMuanBn.cache","vod_id":19039061,"title":"Boss K hooked up with a 90s-born flight attendant who was also working as an escort. Her flight attendant uniform was torn, her stockings ripped, and she didn't take her underwear off, just pulled up a gap and had sex with her vigorously. The girl screamed and the dialogue was lewd. 1080P Original Version","lastmod":"2025-03-28","duration":"00:55:38","url":"/play/19039061.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjEzMDFjMTIyZTUwODI3NmM1NzE5NzM1ODM1NDMxM2QuanBn.cache","vod_id":19081572,"title":"#LR3D [MXVR-008] [VR] I'll take good care of my boyfriend who has a cold. Leave your body and your other body to me ☆【Yume Kana】","lastmod":"2025-03-29","duration":"00:28:19","url":"/play/19081572.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjQxOWFmZWZjOTE5ZWQ4YzU4MTQ0NTg3MmQ3NjliZTUuanBn.cache","vod_id":19096028,"title":"[Chinese Subtitles] MIDV-360 I Hate My Harassing Boss Again and Again…! Big-Breasted Wife Cums Inside Fumika Nakayama","lastmod":"2025-03-29","duration":"02:24:56","url":"/play/19096028.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmYyNzE4NTljNTIxYjk0YTcxZDA3YTNkZWNmZjZjODIuanBn.cache","vod_id":19030481,"title":"MIGD-386 Retirement!! First and last anal sex!! Hoshino Shira","lastmod":"2025-03-28","duration":"01:58:16","url":"/play/19030481.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmNiOTkyZWE5Mjc4NTU3ZjFjYTlkZDA3MjRkMjQ0MTAuanBn.cache","vod_id":19147644,"title":"MIDV-168 My girlfriend was home for two days. During a date, she was gently seduced by her best friend and forced to have an erection. I had no choice but to go to the nearest hotel and have sex with her several times. (Jinguji Nao)","lastmod":"2025-03-29","duration":"02:30:56","url":"/play/19147644.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzFmOWZiZWQ0NzE1MWY0OTA5NDI2MjdhYmJmYmM3YzEuanBn.cache","vod_id":19093762,"title":"[Chinese Subtitles] SSIS-674 A shameless new office lady's lovely drunken and exposed body makes her middle-aged boss's penis as hard as a teenager's!","lastmod":"2025-03-29","duration":"02:45:40","url":"/play/19093762.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGM3ZTJlMzQ1MGI4YTFkMDU4ODBiNDk4ZWUyMTZhNTIuanBn.cache","vod_id":19049235,"title":"One man and two women were having sex, with the man riding on top while the woman penetrated him and played with her vagina. After finishing with one woman, the man would switch to the other and use a vibrating egg to masturbate.","lastmod":"2025-03-28","duration":"","url":"/play/19049235.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDhmYThmMzY1MDE0NjQ0NDM4MDk1ZjU2YmJmNjk1MjguanBn.cache","vod_id":19054279,"title":"[China Pavilion] Big Bonus: Headline Goddess Mansu and Luxurious Hotel XX","lastmod":"2025-03-28","duration":"","url":"/play/19054279.html"}]},
videoTitle: 'JUL048 I went on a business trip and ended up sharing a room with a female boss I've always admired at a business hotel. (Mukai Ai)',
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=/`;
}
};
}