Espelho Mágico Hardcore: Carne molhada e pegajosa! Massagem de corpo inteiro com meia-calça! Pele sem ar até sufocar e delirar! Cheia de lubrificante, experimentando excitação sexy. (Satura Vire)","lastmod":"2026-07-11","duration":"04:20:06","url":"/play/19166101.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMTBiYjlhZjU2YWRlODc0ZDRkYjk1MWIxNDYzNWJlNTkuanBn.cache","vod_id":19153242,"title":"DPPB-001 - A Bomba de Pânico Vazada! Tipo Corporal Erótico Sexual 1","lastmod":"2026-04-13","duration":"40:02","url":"/play/19153242.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGVkNjBiOTNmMjMyOTM5YWRlODQwZjU1MDk4ODVlOGYuanBn.cache","vod_id":19017770,"title":"Qualquer japonês ficaria cativado pela sensualidade e elegância de sua bela e jovem esposa, Suiran Shishido, que é estrangeira.","lastmod":"2025-03-24","duration":"02:25:16","url":"/play/19017770.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmU5N2EzMGFiZjI0ZTVhZWU4ZDVhNDI0MjRlZmI3MjYuanBn.cache","vod_id":18943420,"title":"[Sexo Oral com Garota de Programa] O cara se encontra com uma garota de programa magra para mais uma rodada hoje à noite, sexo oral de 69 em posição de parada de mãos de alta dificuldade, masturbação com vibrador em formato de ovo, penetração anal sexy.","lastmod":"2025-03-22","duration":"01:05:09","url":"/play/18943420.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTYvYjBjNzQyYjExNGQzZTVhYjZiMGZkZDgxMWJjNzczODUuanBn.cache","vod_id":19029276,"title":"Um show solo de masturbação com meias de rede sensuais - gemidos e respiração ofegante enquanto é penetrada por um vibrador em uma cadeira.","lastmod":"2025-04-16","duration":"36:33","url":"/play/19029276.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOGYzMjAyMDJjZjU0YjFhM2Q3YWI3YTg3MmU0ZWI4YzQuanBn.cache","vod_id":19151728,"title":"\"Que tal usarmos máscaras e fazermos um ensaio fotográfico um pouco sensual?\" (Isso se refere a um vídeo de uma fotógrafa amadora expondo os seios, esfregando os mamilos e se envolvendo em atividades lascivas e fofas durante uma sessão de fotos em estúdio, MMND-215-C.)","lastmod":"2026-04-04","duration":"01:58:30","url":"/play/19151728.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGE2YzhlZGE0MmNiYzk1YjJkMDk2OWI0YjEyNWEyYWQuanBn.cache","vod_id":19006951,"title":"GS-286 Treinamento Peniano Afrodisíaco Reverso!! Meu pênis está totalmente ereto devido a um afrodisíaco adicionado pela funcionária sexy responsável pelo chá!! Meu pênis está sendo acariciado! Meu pênis é segurado e acariciado secretamente debaixo da mesa, enquanto eu temo ser descoberto e demitido pelo meu chefe, e então eu engulo feliz o sêmen que meu pênis ejaculou!","lastmod":"2025-03-24","duration":"02:04:16","url":"/play/19006951.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmY5MDVjZmMwOGJkM2JkNGRiYzAzYWM5YTUwYzBiYmEuanBn.cache","vod_id":19015831,"title":"[Jelly Media] Trabalho de meio período de estudante italiana: Garota italiana experimenta prazeres exóticos - Gina","lastmod":"2025-03-24","duration":"52:06","url":"/play/19015831.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvMWU4NWMyMjQ2ZmFmNDRiODZlY2Q1Y2NjOGFlNmRjNDMuanBn.cache","vod_id":19168222,"title":"A secretária sexy e gostosa, que aparece em uma foto do rosto, é uma vadia safada que usa seus mamilos arrebitados para seduzir os funcionários. Nonoka Sato, Kato Momoka, WEEKENDER","lastmod":"2026-07-14","duration":"02:20:23","url":"/play/19168222.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzA3NThjMWNmNGYxYzJjY2MwY2IyOTRiODA2YzA5YTYuanBn.cache","vod_id":18971792,"title":"FC2PPV 3281994 [Sem censura] [Taça G] Uma garota travessa com seios fartos, usando óculos sensuais e com um olhar sério ♥ Uma garota travessa que faz sexo sem proteção com seu parceiro depois de sair do trabalho.","lastmod":"2025-12-14","duration":"00:58:16","url":"/play/18971792.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzhiN2ZhZTcxZmI3OTUwZTBjM2QxZTU2NzQ5ZTdkOWYuanBn.cache","vod_id":19006529,"title":"Douyu, uma streamer sexy, se masturba e geme de lingerie.","lastmod":"2025-03-24","duration":"22:07","url":"/play/19006529.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODg1MDY4M2E0N2ZkZWFiNTJmYzkwMDM5ZjMxMzhkZTQuanBn.cache","vod_id":18930512,"title":"Uma mulher madura, bonita e voluptuosa, com seios redondos e úmidos e uma vagina molhada. (0619) Ela faz um show de masturbação, usando lingerie sexy, se masturbando e inserindo fluidos em sua vagina — muito atraente.","lastmod":"2025-12-14","duration":"00:30:19","url":"/play/18930512.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDUxNzU4ZGJhZDFkODQ1YTYxYjg2ODdlYjAyYTJiMGQuanBn.cache","vod_id":19016950,"title":"※Edição limitada de 2 dias 808pt→980pt※【Sem edição】Encontrei um estudante de design de moda muito franco.","lastmod":"2025-03-24","duration":"01:06:00","url":"/play/19016950.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGQyM2ZlNTA2MWRkNzdjOGY0ZTc3OGI3YWQ0YmMwZDkuanBn.cache","vod_id":18958830,"title":"Jelly Media FSOG-035 Meias Pretas Sensuais com Massagem Completa - Deusa Sedosa","lastmod":"2025-03-22","duration":"00:23:37","url":"/play/18958830.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTExMDY0NjJmNzEwZTdkYzdkMTNhNDczOGFhZTM1MzEuanBn.cache","vod_id":18957750,"title":"Huya Xiao Reba, uma nova modelo de alto nível, faz sexo com duas garotas usando acessórios, incluindo sexo oral de lingerie e meias arrastão, posição de montaria e penetração mútua com vibradores em formato de ovo e dildos.","lastmod":"2025-03-22","duration":"03:07:20","url":"/play/18957750.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGU3ZTE2NGVlYzllZDg0ZjI4ZDU2MmI5NTIzMWYwZGMuanBn.cache","vod_id":18979436,"title":"Vadia de meias brancas, pequena biscate, rosto exposto o tempo todo, bate-papo noturno, seguindo as instruções do namorado para diversão interativa, adereços usados para penetrar sua buceta enquanto ela geme, tigresa branca sem pelos abre as pernas para uma visão de perto de sua buceta, verdadeiramente estimulante.","lastmod":"2025-12-14","duration":"01:02:43","url":"/play/18979436.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjk0YzdhYWI0MTQxMzllZWFhZmE4MDQzMzNiNzJiYmEuanBn.cache","vod_id":18996898,"title":"[Mulher casada jovem e sexy] Orelhas sensuais, meias cinzentas, casal fazendo sexo em casa [Parte 2] Posição 69, sexo oral, lamber o pênis, montando, segurando as nádegas, penetrando repetidamente, levantando as nádegas e transando vigorosamente por trás.","lastmod":"2025-12-14","duration":"20:28","url":"/play/18996898.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDMzNDdkMzZhNzA3OGU3OGRlZjcyYzJjYTY1ZjFkZTcuanBn.cache","vod_id":19010496,"title":"ETQR127 apresenta sexo intenso com Kagami Mari, uma caloura com um decote sexy.","lastmod":"2025-03-24","duration":"01:04:12","url":"/play/19010496.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTJhNzg3ZWVlODdkZmJhMTQyZDM2YzEwMDQxMTA2ZDAuanBn.cache","vod_id":18978868,"title":"Que jovem sexy! Ela é sedutora em sua roupa inocente, porém reveladora, exibindo seus seios voluptuosos para seus admiradores. Ela até compartilha closes de si mesma se masturbando com um vibrador inserido na vagina e vídeos dela sendo \"treinada\" por seus admiradores.","lastmod":"2025-12-14","duration":"00:24:53","url":"/play/18978868.html"}]},
videoTitle: 'Roupa erótica super sexy de edição limitada UT-Mercury 1.',
language: 'pt',
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 copiado!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Link copiado!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Link copiado!');
}
}
},
// 切换布局
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=/`;
}
};
}