여심을 사로잡는 데 능숙하고 공짜로 얻어먹는 기술을 블로거인 대학생이 메이드복에 검은 스타킹을 신은 아름다운 여자와 만나 두 번이나 열정적으로 섹스를 했다.여심을 사로잡는 데 능숙하고 공짜로 얻어먹는 기술을 블로거인 대학생이 메이드복에 검은 스타킹을 신은 아름다운 여자와 만나 두 번이나 열정적으로 섹스를 했다.","lastmod":"2026-07-11","duration":"01:15:18","url":"/play/19154652.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYWFmMzk2NTYwMmQ2YWI4NjMwMmY1NDA3Y2NmOGZjODMuanBn.cache","vod_id":19123706,"title":"가슴 큰 미녀들이 계단에서 섹스하는 모습이 몰래 촬영되어 유출된 사진들. 너랑 하고 싶어. 조용히 해. 내 방문 앞에서 자위하고 있어. 복도 건너편이나 위층에서 누가 보면 더 짜릿할 것 같아.","lastmod":"2026-02-10","duration":"08:02","url":"/play/19123706.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDFhZTkzNzI3ZjdlMTc5YjY5MzI1YTBkZTVjMDkxN2MuanBn.cache","vod_id":19008667,"title":"아름답고 글래머러스한 젊은 여성이 영상 내내 얼굴을 드러내며 남성 시청자들을 유혹합니다. 이 풍만한 가슴이 마음에 드시나요? 그녀는 직접 가슴을 주무르고 빨면서 끊임없이 음란한 신음 소리를 냅니다. 이 흥미진진한 쇼를 놓치지 마세요!","lastmod":"2025-03-28","duration":"32:09","url":"/play/19008667.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjQwM2UwYTBiNTgzNTdlZmM2NjY5MWYyNzM1NTNiNzQuanBn.cache","vod_id":19135560,"title":"교복의 유혹, 최고급 백호빵, 치파오를 입은 음탕한 로리, 검은 스타킹, 큰 성기, 콘돔 없이 남의 여린 여동생과 섹스.","lastmod":"2026-04-07","duration":"07:14","url":"/play/19135560.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNGUzZWQxN2VjODllOWYwNDRmZTVjMTc5ZTkxY2FlMmEuanBn.cache","vod_id":19121256,"title":"유혹 카운트다운 6권, 카가미 아키라 3화 (중국어 자막)","lastmod":"2026-01-29","duration":"28:21","url":"/play/19121256.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGZkY2NkN2RlZTUzY2Y1MGI1Njk4NzA4NTMxYThjOGYuanBn.cache","vod_id":19035265,"title":"[단독] 경력 있는 운전자가 차 수리를 맡긴 여성의 항문에 성관계를 갖습니다. 수리 도중 그는 여성의 질을 보고 싶어했지만, 그녀는 허락하지 않았습니다. 그러자 여성의 질 안에는 남성의 성기가 들어 있었고, 알고 보니 남성이었습니다. 이 사건 직후, 그의 성기는 즉시 축 늘어졌습니다!","lastmod":"2025-03-29","duration":"02:07","url":"/play/19035265.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGNiZjE2ZDEyZGQxOWQ4YjMyNzNiZjUyMGYyNjg5ZjAuanBn.cache","vod_id":18996987,"title":"NTR-070 수리공은 여성 차주를 강제로 성관계하게 했고, 남성 차주에게는 그 모습을 지켜보도록 강요했다.","lastmod":"2025-03-28","duration":"01:59:04","url":"/play/18996987.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvODYwNDM1NGRmNzVkOWM1YWFhMTE1MWViN2U2MzQwYzEuanBn.cache","vod_id":19132821,"title":"그 여직원은 넉넉한 사이즈의 검은색 스타킹을 신고 있었어요! 그녀의 풍만한 엉덩이와 섹시한 다리에 시선이 쏠렸죠. 출장 동안 사무실과 호텔 모두에서 스타킹을 신었어요. SW-1032","lastmod":"2026-03-24","duration":"03:22:56","url":"/play/19132821.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MDcvZDRkOTc3MmUyZTBhMGM3YzkwOGIxNzU4NmEyYjMwZDMuanBn.cache","vod_id":19072272,"title":"JK 화이트 타이거 로리 발 페티시 유혹 자위_","lastmod":"2025-05-07","duration":"11:37","url":"/play/19072272.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjcxYTJkNDI4MGM4YzMwYjljNWE5ZjE0MzBkNjE5NjAuanBn.cache","vod_id":19131688,"title":"MIDV-641-C 제가 아들 집에 살고 있을 때, 아들은 약혼녀와 함께 살고 있었는데… 저는 그의 여자친구의 가슴에 대한 유혹을 뿌리칠 수 없었어요…","lastmod":"2026-03-19","duration":"02:22:39","url":"/play/19131688.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjIyODA1ZjE4Y2UxYTBlYTk3MjEzZTQxZTJmODc5N2QuanBn.cache","vod_id":19057469,"title":"JUL104 나는 당신 모두를 원해요. 나이 든 기혼 여성과의 부드러운 성적 접촉. 아야네 하루카...","lastmod":"2025-03-29","duration":"02:00:04","url":"/play/19057469.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTUvNDJkZTRmMDY2NjFlMjM5YjUzZmQzNGIyYWJkZjkzYjQuanBn.cache","vod_id":19106480,"title":"억제할 수 없는 성욕을 가진 소녀! 그녀가 직접 촬영한 자위 영상을 발견한 후, 나는 그녀의 복종적인 남성 노예가 되었다. (花音丽 BAGR_045)","lastmod":"2025-11-14","duration":"02:13:23","url":"/play/19106480.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2NmYzFmYTRkMTkzZDVhZmJlYjljN2M0ZGY4Y2Q0YzAuanBn.cache","vod_id":19060229,"title":"MD0115_가정교사의 유혹: 매혹적이고 유혹적인 기혼 여성의 공식 웹사이트 - 샤칭쯔.","lastmod":"2025-03-29","duration":"24:20","url":"/play/19060229.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWRmNGExYzU0ZWM2ZWRkZWYxYTRlMWU2MmQzZmY4NWEuanBn.cache","vod_id":19036292,"title":"VEMA-214 여상사와 여직원이 사무실에서 단둘이 성관계를 갖는 장면.","lastmod":"2025-03-29","duration":"01:38:20","url":"/play/19036292.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2U0OTI5ZDJmZGE2M2E0ZjgyM2ZlMTMwMmVjOGE0ODkuanBn.cache","vod_id":18968877,"title":"완벽한 J컵 가슴을 가진 정부와 은밀한 성관계를 맺고, 밤낮으로 음탕한 욕망에 탐닉한다. (시오)","lastmod":"2025-03-28","duration":"02:31:41","url":"/play/18968877.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvY2QzMzdlYmNkMjI1NzE2MDFkODNhNGY4YTYzNDM0ZjIuanBn.cache","vod_id":19137714,"title":"심야 건강실 EP37: 역사 선생님은 이걸 가르치지 않아 – 고대인들의 사랑 나누기는 너희보다 훨씬 개방적이었어; 에로틱 사진 생중계 – 충격적이게도, 여자와 문어가 뒤얽혀 있었어","lastmod":"2026-04-18","duration":"15:09","url":"/play/19137714.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNTIxNDczYjBjODZmOGVkM2Q1MTk4ODJkODRiZDI2ZDYuanBn.cache","vod_id":19128191,"title":"[4K 카메라 촬영] 귀에서부터 시작되는 음란한 절정, 풍만한 가슴과 엄청나게 단단한 발기를 가진 음탕한 미녀의 강렬한 자위 행위에 빠져들도록 유혹합니다. DASS-830","lastmod":"2026-03-03","duration":"01:56:23","url":"/play/19128191.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTFlZjEwZDA4ZDgxYzE5OWEwNmVmOTBlNzNiMmY2ZGYuanBn.cache","vod_id":19006645,"title":"여성 에로 소설가의 데뷔작은 부유한 젊은 남자와의 데이트였다. 그녀는 섹시한 스타킹으로 그를 유혹하여 자신의 음부를 핥고, 가슴을 빨게 하고, 커다란 성기에 69 체위로 오럴 섹스를 하게 했다. 그러고 나서 그녀는 수갑이 채워지고 그에게 채찍질을 당했다.","lastmod":"2025-03-28","duration":"01:16:01","url":"/play/19006645.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjE0YmViNWNlOTk1NTNhMWZhMGQyNmU3ZWM4M2M5ZDUuanBn.cache","vod_id":19002293,"title":"섹시한 란제리를 입은 아름다운 소녀 네 명과 소년 두 명이 서로의 섹시한 엉덩이를 핥고 올라타는 등 성적으로 자극적인 행위를 합니다. 이런 종류의 영상을 좋아한다면 절대 놓치지 마세요!","lastmod":"2025-03-28","duration":"03:15:24","url":"/play/19002293.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvYTM3ZmQ5OTMxM2YyMDFhZTExMDQ3NjdlZjI4N2E5MGIuanBn.cache","vod_id":19110162,"title":"키는 작고 철없는... 내 친구의 147cm 키의 이 작은 악마가 나를 놀리고 유혹한다!! 가슴을 가까이에서 만지는 건 가능해 보이지만, 사실은 불가능하다. 츠무기 유라 FOCS_213","lastmod":"2025-12-13","duration":"02:08:24","url":"/play/19110162.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MDYvZmMyODU5MjQxMDUzMzY3OTU2NDI2NjdkNjA3MDFkM2IuanBn.cache","vod_id":19077158,"title":"MIDV564 당신의 마음을 녹이는 속삭임, 심장을 뛰게 하는 음란한 말들! 섹시하고 귀여운 에로틱 의상들이 당신을 유혹하고 애태우며, 당신의 고환이 마비될 때까지 자극합니다.","lastmod":"2025-06-06","duration":"01:59:58","url":"/play/19077158.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzM2N2IwYzZjODA4MDA0ZDEwYWQ1MTE1MjUyMDExZTcuanBn.cache","vod_id":19022537,"title":"저속한 언어와 유혹. 인기 작품을 완전히 주관적으로 각색했습니다! [원작] 미츠도우에 오디오 포맷, 학생과 달콤하면서도 발칙한...","lastmod":"2025-03-29","duration":"01:57:45","url":"/play/19022537.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MzAvM2U3MzQwZDJhNDhlZmRjMzI0MTczYzE3ZmM4MzU2YTMuanBn.cache","vod_id":19098055,"title":"유니폼 페티시, 검은 스타킹, 망사 스타킹, 토끼 소녀","lastmod":"2025-09-29","duration":"13:06","url":"/play/19098055.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=/`;
}
};
}