My friend went to a nightclub for his birthday ❤️ He sang karaoke and then went to a brothel with a hostess named Lily to watch porn and enjoy special services. (1080P HD, watermark-free)
When I called for a delivery health service, I met a beautiful clerk at a bento shop I go to every day. She told me, 'Mine Reiko DAHLIA'","lastmod":"2026-07-11","duration":"02:00:11","url":"/play/19166925.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWMzNGNlZjBkYzc1MmVmYjVkYjdkZTMxOTY2MWMwNDguanBn.cache","vod_id":18997783,"title":"Enjoy the body of the voluptuous and lovely girl Emily","lastmod":"2025-03-23","duration":"01:06:12","url":"/play/18997783.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDgvZjc4ZGIwMTdmN2YwOWQxMDQwZmQ5YjQ2YzA4NTQyMTIuanBn.cache","vod_id":19051604,"title":"A prostitute who licks a woman's vagina, a Viagra, a family-style apartment in Chengdu, a hookup service, a respectable young woman, licking her vagina, various positions, and rough sex.","lastmod":"2025-09-07","duration":"16:37","url":"/play/19051604.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTZkNzE0YTgwNTU4YzkxNGQxYzAwMzE3ZGZhMDYxOWIuanBn.cache","vod_id":18994888,"title":"[High Definition Encoding] 326FCT-052 A pure, gentle, and passionate young girl, radiating an overwhelming charm of childlike innocence!! ...But she's actually a perverted, oversized-breasted girl.","lastmod":"2025-03-23","duration":"01:27:04","url":"/play/18994888.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMWY0NGY1NTMyODg1YjEyNWY3YzY4M2M0ZDAxYTlmZjkuanBn.cache","vod_id":19143668,"title":"Vacationing with my girlfriend. A day filled with desire. Today's date is sex, Kinoshita Yomari SQTE-631","lastmod":"2026-02-16","duration":"01:48:22","url":"/play/19143668.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGQ4NGVkMzcyNjRlNmY4OTg0NmY5YzExOGE5MmU1YjEuanBn.cache","vod_id":19002965,"title":"Kind Mom's Friend 3","lastmod":"2025-03-23","duration":"01:05:31","url":"/play/19002965.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGI0YzI0NDY2Y2MwZTBjMmUyYjNjMDlmMjBiOTNkYWYuanBn.cache","vod_id":19025387,"title":"SSNI893 Did my wish come true? When I called to request a home delivery service, I discovered it was a receptionist from a client company. I've always wanted to have sex with her, and my reason in front of her is... Iga Umako.","lastmod":"2025-03-24","duration":"01:58:02","url":"/play/19025387.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDAxOWIyM2FjOGY2NjA0ZDVkZGIyNTQyNDBiNjJjZjIuanBn.cache","vod_id":19146774,"title":"A stunningly beautiful young woman with a devilish figure called a massage therapist to her hotel room for a full-body oil massage, with her private parts being stimulated and explored, igniting her desire and prompting her to actively seek sex.","lastmod":"2026-03-06","duration":"50:01","url":"/play/19146774.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzgyOTM0Mjc4ZWFiODA4MDkxZmZiNDA1NDM5NTUyNzAuanBn.cache","vod_id":19020480,"title":"Enjoying the love of a big-breasted girl in the bathtub.","lastmod":"2025-03-24","duration":"18:10","url":"/play/19020480.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTEvOWM5ZDVmYzdiYzZhYTBjNTA4ODI4YjZlMzU5NWI4OGIuanBn.cache","vod_id":19062146,"title":"Wenxuan Original Version - Post-00s Escort Girls","lastmod":"2025-12-13","duration":"57:45","url":"/play/19062146.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZmQ5NTlhN2VjNmI1ZTk4NzJmMGI1NDg5NTc3ZTQ3ZmUuanBn.cache","vod_id":19161018,"title":"Gina Gerson is stunned by her best friend's father. [Tushy]","lastmod":"2026-05-31","duration":"12:18","url":"/play/19161018.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDcvZDhhOTM2MjlmYmM2OTAwMDg0MjJmNTlmZTIzNzU1NjEuanBn.cache","vod_id":19041819,"title":"Busty young lady.","lastmod":"2025-07-06","duration":"19:45","url":"/play/19041819.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjgzMzAzOGM1Y2Q0ODM2YWY1NjlmMzliZWZkNmZhZWQuanBn.cache","vod_id":19009859,"title":"MEYD561 CHINASES SUB My sister-in-law is cold to her brother, but she's actually my sexual partner, and I live with her. Nanami Kawakami.","lastmod":"2025-03-24","duration":"02:40:10","url":"/play/19009859.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2ViZTA4ODNlMmVhN2I4NTNkYWYzMjRhNzExZjFkYWUuanBn.cache","vod_id":19001134,"title":"DFDM-015 The sudden heat of a literary-minded young lady's delicate yet lewd act of semen extraction - Kanade Kanon","lastmod":"2025-03-23","duration":"01:55:20","url":"/play/19001134.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTMwNmM2ZTYwYWI1YWM2NDM3MjM3NDA1ZmI0YzBkNWMuanBn.cache","vod_id":18989249,"title":"200GANA-2255 Serious Softcore, First Time Filming. 1456 A super cute nursing student is found in a city destroyed by a rainstorm! When I listened to her tell her story, she said, \"I don't have a boyfriend, but I have a dad!\" She's a modern carnivore! However, she was very depressed and said, \"Having sex with my dad doesn't feel good at all!\" Her daily routine is to watch adult videos and masturbate, so when I suggested that she \"try making adult videos\"...! (0002).","lastmod":"2025-03-23","duration":"01:12:16","url":"/play/18989249.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjIwM2NiOTczMTM1MzM2NmM3MmY4Y2JiNWEwOTMzZTQuanBn.cache","vod_id":19021898,"title":"The all-inclusive service was really great.","lastmod":"2025-03-24","duration":"51:33","url":"/play/19021898.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDYvNGUwODRmNGYwYmJlYjVhYWE3OTQ2N2QwZmIzYTZlYzMuanBn.cache","vod_id":19041661,"title":"The fair-skinned girl was laughing as she worked.","lastmod":"2025-07-05","duration":"01:11:02","url":"/play/19041661.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGE4MGQwMWUwMDZlODE2ZThjMDMyN2VjMTEzZGNmMjYuanBn.cache","vod_id":18961779,"title":"CLUB-191 I (♀) am only interested in cute girls, but I brought my straight friend back to my room, forced her to have lesbian sex with me, and secretly filmed it.","lastmod":"2025-03-22","duration":"02:50:13","url":"/play/18961779.html"}]},
videoTitle: 'My friend went to a nightclub for his birthday ❤️ He sang karaoke and then went to a brothel with a hostess named Lily to watch porn and enjoy special services. (1080P HD, watermark-free)',
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=/`;
}
};
}