메르세데스-벤츠 G-클래스를 몰고 근육질 남자를 정부로 둔 최고의 피트니스 인플루언서가 질액이 분출될 때까지 격렬하게 관계를 맺고 살려달라고 애원합니다. ...title>메르세데스-벤츠 G-클래스를 몰고 근육질 남자를 정부로 둔 최고의 피트니스 인플루언서가 질액이 분출될 때까지 격렬하게 관계를 맺고 살려달라고 애원합니다.","lastmod":"2026-07-11","duration":"","url":"/play/19245175.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MDkvNWYxM2I2NzE1MjA3ZGQwNTlkYTYxZjcyMThkZWI4NTcuanBn.cache","vod_id":19172189,"title":"아름다운 유부녀들로 가득 찬 버스 SW-125는 아수라장이 된다. 최음제가 민감한 부위에 주입되어 강제로 절정에 이르게 된다. 아마미야 코토네, 아라키 아리사, 그리고 기타지마 안 세 사람은 말없이 떨고 있다.","lastmod":"2025-04-09","duration":"01:59:57","url":"/play/19172189.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMGY3ZTFiYTU4NDI4NGZiZmRlZWNiOWE0ZDUyYmNjYzkuanBn.cache","vod_id":19228555,"title":"MMD 엘프 소녀가 거대한 가슴을 가진 채 거대한 짐승에게 격렬하게 성폭행당하고 오르가즘을 느낀다","lastmod":"2026-04-11","duration":"0:04:16","url":"/play/19228555.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZTM2NTY4YzI4MDMyYmFlYjFhOGI2M2M2MDFiZWFjNTcuanBn.cache","vod_id":19142234,"title":"순수하고 날씬하며 훌륭한 몸매를 가진 그녀는 야외용 진동기를 사용하여 자위합니다.","lastmod":"2025-03-29","duration":"","url":"/play/19142234.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmY2YzZjYmQ1ZjU3ZjZmOTk3N2JiMjllMTAwZTg2MWQuanBn.cache","vod_id":19152459,"title":"JUL-880 슈퍼 S급!! 솔로 여배우, 마돈나 데뷔!! 남편과 잠자리를 가진 후, 아이와도 관계를 맺고 나서 시아버지에게 반복적으로 성폭행을 당하는… 아마네 츠바사","lastmod":"2025-03-29","duration":"02:27:45","url":"/play/19152459.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTMvYzk4NjhlODhjZjI3Mjg5MDcxYTMzYjA1YWY2ZjQwNTMuanBn.cache","vod_id":19189408,"title":"몇 번이나 오르가즘을 느꼈을까? 그녀의 분홍빛 부드러운 구멍에서 주체할 수 없이 애액이 쏟아져 나왔어. 너무나 황홀해서 기억도 나지 않을 정도였지! 그 황홀한 구멍은 너무나 유혹적이야.","lastmod":"2025-08-12","duration":"42:59","url":"/play/19189408.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvMzBjZDczZWZkYWE2NTVlNzZkYjQwMzhlOTQ0N2Q0ZDQuanBn.cache","vod_id":19207671,"title":"두 언니는 근친상간을 시도하다 실패한 후, 어쩔 수 없이 다시 성관계를 맺게 되면서 집안은 아수라장이 된다! (카탈로그 번호 HRSM_063: 무명 여배우의 열정적인 연기.)","lastmod":"2025-12-13","duration":"2:35:39","url":"/play/19207671.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODEwYzBhOTcwMmQ0ODkxOWQzZTc3NDk0M2QzZDQ2Y2MuanBn.cache","vod_id":19079389,"title":"NHDTA-875는 한 여대생이 러브호텔에서 벌인 파티의 비밀 영상으로 추정됩니다. \"솔직히 이런 건 처음 해봐요...\" 술에 취한 두 사람이 추격전을 벌이고 절정에 다다르면서 우정의 경계를 넘어서는 장면이 담겨 있습니다.","lastmod":"2025-03-29","duration":"03:11:47","url":"/play/19079389.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTE1YmEyZDZmM2E1ZDc4Y2I2MWI3NzY1YTgwZjI5NzIuanBn.cache","vod_id":19097607,"title":"[무삭제판] MIDV-540 아키마를 닮은 사랑스러운 미소를 가진 20세 소녀. 아름다운 피부와 부드러운 가슴. 섬세하게 시술된 분홍빛 유두는 더욱 민감해졌으며, 그녀는 생애 첫 트리플 오르가즘을 경험합니다!","lastmod":"2025-03-29","duration":"02:58:51","url":"/play/19097607.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTczZjVhMmNhOTQ5NDNhZmMwNzg1YjQyN2Y5NmFkMTMuanBn.cache","vod_id":19046285,"title":"두 젊은 여성이 에로틱한 의상을 입고 서로의 가슴을 만지고 핥으며 아찔한 자위 행위를 펼칩니다. 진동하는 헤드와 손가락으로 부드럽게 성기를 자극하는 모습은 매우 매혹적이고 유혹적입니다. 절대 놓치지 마세요!","lastmod":"2025-03-28","duration":"","url":"/play/19046285.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGY5ZWFkZDg5NGMyYmVjOGU3YTdkMzUyOTQwOGZjZTcuanBn.cache","vod_id":19046966,"title":"여성의 몸의 비밀 n1750 시오리/제 자위하는 모습을 봐주세요...","lastmod":"2025-03-28","duration":"","url":"/play/19046966.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWYzNjVhOThkNmFhMWIzNzBkM2EwYmRiNDdkZDJiZTQuanBn.cache","vod_id":19039675,"title":"풍만한 몸매에 하얀 피부를 가진 가면 쓴 소녀가 나체로 진동 딜도를 이용해 분홍빛 음부와 탄력 있는 엉덩이를 애무하며 자위합니다. 매우 유혹적이니 놓치지 마세요!","lastmod":"2025-03-28","duration":"01:03:30","url":"/play/19039675.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmU2YzdlMTY3ZTZhZjc3OWM0M2JjMWI5MzRlYzRhYjIuanBn.cache","vod_id":19064747,"title":"스타킹을 신은 재능 있는 여성 앵커가 유혹적이고 매혹적인 모습으로 열정적인 누드 댄스를 선보입니다. 너무나 흥미진진하고 도발적인 다양한 동작들이 당신을 순식간에 흥분시키고, 나비 모양의 음부에 소품을 삽입하며 음탕한 신음과 끊임없는 오르가즘을 선사합니다.","lastmod":"2025-03-28","duration":"00:37:26","url":"/play/19064747.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDJmZWRjYmE5ODRmYTFhMzRiNThkZmJjNzkxMTEzZmUuanBn.cache","vod_id":19076739,"title":"OKP-053 신의 스타킹 린 호시자키: 교복을 입은 아름다운 소녀가 새 스타킹으로 온몸을 감싸고, 발끝에서 흐르는 땀의 감촉을 만끽합니다! 때로는 얼굴에 앉거나 발 페티시를 즐기고, 때로는 사정을 하고, 때로는 엉덩이를 문지르거나 집단 성교를 합니다. 당신이 원하는 대로 하세요! 성적 흥분에 사로잡힌 여자의 변태적인 훈련과 오르가즘 게임을 즐길 수 있는 페티시 AV입니다.","lastmod":"2025-03-29","duration":"01:33:24","url":"/play/19076739.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmFmMGViMGE1MzA3NmJlMGM0ODk0YjBhYThmZmU1MmIuanBn.cache","vod_id":19060236,"title":"이 나이 든 여성은 여전히 성욕이 왕성하다. 카메라 앞에서 그녀는 남자 친구가 자신에게 자위하도록 지시하고 그의 성기를 만지작거리며, 그가 다양한 체위로 삽입할 때마다 신음하고 끙끙거린다.","lastmod":"2025-03-28","duration":"01:25:34","url":"/play/19060236.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYmFjZDQwNmYxNWExM2M3NzgyMDc5YThjZjZhNmZlYjAuanBn.cache","vod_id":19214743,"title":"얀페이의 원신 코스프레: 관능적이고 매혹적인 모습에 질식한 듯한 표정을 연출한 섹시한 정의의 여신 코스프레로, 내부 사정을 표현했습니다.","lastmod":"2026-02-02","duration":"0:02:43","url":"/play/19214743.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNmVjNDY0ZThkYTNkMDk1MDEyNDYwNjY3ZTZhNzVmZjQuanBn.cache","vod_id":19217477,"title":"최고 수준의 트윈테일 댄서 YoxiJ가 다리를 찢는 동작을 선보이며, 그녀의 여린 구멍이 활짝 벌어지고 강렬한 오르가즘을 경험합니다.","lastmod":"2026-02-13","duration":"0:14:15","url":"/play/19217477.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjE1NTBmY2M5ZjNhZmY2Yjk3MTdlNGJhMjUxMmUzYTkuanBn.cache","vod_id":19043117,"title":"젊고 아름다운 대학 2학년생과 오랜만에 만난 그녀의 남자친구가 호텔에 투숙했다. 두 사람은 격렬하게 사랑을 나누었고, 여자의 오르가즘 신음 소리와 두 사람의 몸이 부딪히는 소리가 너무나 강렬해서 듣기조차 힘들었다!","lastmod":"2025-03-28","duration":"00:08:32","url":"/play/19043117.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjQvYjg3Mjg1NTQ3ZDM1YzJjNzk1NTM0YmIwY2MxMjViYjcuanBn.cache","vod_id":19186646,"title":"KBMS187 호텔 자위 기록: 음탕한 여자가 자신의 은밀한 부위를 가지고 놀다가 오르가즘과 사정을 경험하는 모습","lastmod":"2025-07-23","duration":"01:32:16","url":"/play/19186646.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzZjZWZiODIxZjIxOTQ3MDRmYTcxNDg0ZTYxYTFiNzcuanBn.cache","vod_id":19214055,"title":"크고 통통한 엉덩이와 풍만한 가슴을 가진 여성이 음란한 신음 소리를 내며 소품을 이용해 털 없는 음부를 자극하다가 오르가즘에 도달해 사정하는 장면이 클로즈업으로 촬영되었다.","lastmod":"2026-01-10","duration":"2:09:55","url":"/play/19214055.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjgvMDBiNmUxYzdiYjRjODViMDlkNGE4NTE2N2QzYzYwNzIuanBn.cache","vod_id":19182783,"title":"KTB096: 여성의 레이스 열정 일기 - 술 취한 주부의 치마가 주는 유혹, 그녀가 저항할 수 없는 짜릿한 절정.","lastmod":"2025-06-27","duration":"02:13:21","url":"/play/19182783.html"}]},
videoTitle: '[폭발적인 사정] 크리스탈 바이브레이터로 사정할 때까지 자위! ○○ (여배우 이름) 촉촉하고 황홀한 오르가즘',
language: 'ko',
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('링크 복사 완료!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('링크 복사 완료!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('링크 복사 완료!');
}
}
},
// 切换布局
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=/`;
}
};
}