Celebridade da internet vaza segredos, milhares seguem a top goddess kkimk fotos privadas, treinamento, exposição de vários comportamentos obscenos, muito contrastante.","lastmod":"2026-07-11","duration":"","url":"/play/19267853.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDM1NjFlNjFjZmE2MzAxNzc4ZmM4NDNkNTI4ODE3Y2MuanBn.cache","vod_id":19141110,"title":"[China] Seios Lindos -- Uma linda mulher que tem um caso extraconjugal estimula rapidamente sua vagina com as mãos até ter um orgasmo e ejacular, depois ela é fodida de várias maneiras - 303222325!","lastmod":"2025-03-29","duration":"0:31:46","url":"/play/19141110.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNGNkYjMwYTFiOTJmMjhlM2ZkNmExYjQ5NzY5ZWU5NmYuanBn.cache","vod_id":19095149,"title":"A garota de calça jeans estava fazendo sexo no sofá, agachando-se para fazer sexo oral, montando por cima e sendo penetrada vigorosamente enquanto gemia.","lastmod":"2025-03-29","duration":"0:49:48","url":"/play/19095149.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvODJlNjE0MzM0ZTVmMjRlNjQ5YTE1NjAxNmQ3NmI3ZWQuanBn.cache","vod_id":19239036,"title":"Uma garota pura e inocente foi penetrada por um pênis grande em várias posições sem o uso de preservativo.","lastmod":"2026-01-10","duration":"1:07:58","url":"/play/19239036.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MTMvZGQ3MzdkZWE4NWFjOGZkOGNjYzk2NDBlMWJlMzg0NGMuanBn.cache","vod_id":19263352,"title":"Vazamento clássico: So-young, uma dona de casa inocente de 27 anos, foi filmada sendo violentamente penetrada e estuprada pelo namorado.","lastmod":"2026-06-12","duration":"0:14:40","url":"/play/19263352.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzdlYWJjMzRkMWM5M2Y1MmUyY2UxYTAyOWEyZDQzZjEuanBn.cache","vod_id":19146046,"title":"#MulherJovemBonita","lastmod":"2025-03-29","duration":"0:24:38","url":"/play/19146046.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjQwZmIzNmMyY2FlMGQ2ZTdhN2ZmZjE0NjRjZTFlNDEuanBn.cache","vod_id":19258072,"title":"Toyoko Club: O Segredo de uma Garota Misteriosamente Bonita Descoberta na Rua - Sexo Sem Proteção - Primeira Estrela","lastmod":"2026-05-11","duration":"2:25:46","url":"/play/19258072.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzQ5NGM5NTRiZGE5ZDg2MjFkYjMwNDkxNjk1YTEyMzcuanBn.cache","vod_id":19140862,"title":"[China] Uma jovem e sensual mulher chamada Mi'er tem um corpo escultural. Ela usa um vibrador para se masturbar e, enquanto o insere, também usa um vibrador em formato de ovo para massagear o clitóris!","lastmod":"2025-03-29","duration":"0:21:09","url":"/play/19140862.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzQ0NmMzODJiNzdlNGZkNTUyNGZmNjYxNTMxOTFlZDMuanBn.cache","vod_id":19241987,"title":"Um padre em quem alunos e pais confiam, mas nos bastidores uma vadia lasciva que faz sexo selvagem com colegas. Sexo com a professora de mandarim Chun. Ator desconhecido. BEAF-183","lastmod":"2026-01-29","duration":"1:25:50","url":"/play/19241987.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDAwNGJlZjU1ZDQ4ZGE5MDU0Y2RmZTEwMDg1MTBhNTguanBn.cache","vod_id":19065383,"title":"[Luna] Polônia, o reino mais belo, um diário de viagem sexual, sofá, completamente nua, sem camisinha, ejaculação interna, romance verdadeiro.","lastmod":"2025-03-29","duration":"0:10:39","url":"/play/19065383.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTIvMzMyNWM0YmJlMTg5MzVjNWNmYjQ3NDU2NTI3MDJjMTkuanBn.cache","vod_id":19225954,"title":"Modelo - Entregadora Sexy - Shu Kexin","lastmod":"2025-10-11","duration":"0:24:50","url":"/play/19225954.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZDNmOWM5Zjk1NzIxNjE3NTNiNDc4NDZhNjZhMjYzZWUuanBn.cache","vod_id":19244279,"title":"Uma jovem rechonchuda vestida com um cheongsam está deitada de bruços na cama; quem resistiria?","lastmod":"2026-02-11","duration":"0:10:41","url":"/play/19244279.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjQxMDEwMThmODFmMGRhM2VkOTkwOWI5NTMyMjkwMGEuanBn.cache","vod_id":19057465,"title":"Duas cenas juntas. A primeira cena mostra uma garota bonita e atraente fazendo sexo, incluindo closes de beijo francês, carícias, sexo oral, ela montando e penetração vigorosa. A segunda cena mostra uma garota com aparência pura e inocente vestindo um vestido Lolita fazendo sexo, incluindo closes de suas pernas se abrindo, sexo oral, ela montando e penetração vigorosa.","lastmod":"2025-03-29","duration":"2:55:06","url":"/play/19057465.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjNlMDhkYjE4NmNhMzllZTQyODFhNzc0NjE3Nzk1ZjkuanBn.cache","vod_id":19071500,"title":"Minha namorada inocente e careca foi penetrada sem camisinha.","lastmod":"2025-03-29","duration":"0:19:41","url":"/play/19071500.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzRjNmVkZTJkNzMwNGQ2YzYxODczOTg0NjdlOGVlMjEuanBn.cache","vod_id":19079226,"title":"91 Deus Daige - Sofá no sofá, ele empurrou uma aeromoça de pernas compridas e salto alto da China Eastern Airlines.","lastmod":"2025-03-29","duration":"0:33:12","url":"/play/19079226.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjE5OWEyMmRhNzY1MjdhNDNhMDFkNTNjZGVkOTIyY2MuanBn.cache","vod_id":19046023,"title":"Show de sexo em grupo apaixonado de Wildcat [6] Rosto totalmente revelado, quarto obsceno é um campo de batalha, várias vadias são fodidas brutalmente por irmãos mais velhos, suas vozes obscenas","lastmod":"2025-03-29","duration":"0:39:54","url":"/play/19046023.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTUvOGE0ZWZhMDRiMGNiNjZkZWNhMTJjYzhkOTMwN2I2MDQuanBn.cache","vod_id":19235346,"title":"A enchente destruiu o Templo do Rei Dragão; os reservatórios já começaram a jorrar água.","lastmod":"2025-12-18","duration":"0:31:19","url":"/play/19235346.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYWIzNjNhZDAwODIyYTY1YTQ2ODY5N2RiNDE0M2IwN2IuanBn.cache","vod_id":19064077,"title":"Homem com pênis grande e garota de programa com o rosto à mostra fazem sexo apaixonado.","lastmod":"2025-03-29","duration":"0:18:07","url":"/play/19064077.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTAwYmZhZmQxMGY2OGIxYzE5YzM2NWYxYzc5YWMwZmUuanBn.cache","vod_id":19108119,"title":"Uma mulher sexy e madura, usando meias e salto alto, exibe seu rosto durante uma transmissão ao vivo, chegando até a empinar as nádegas para mostrar o ânus ao namorado.","lastmod":"2025-03-29","duration":"0:40:27","url":"/play/19108119.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMTlkYjk0OTQ2NmY4YTY4NmM2NGI4MjA2Zjg0NjkyYWYuanBn.cache","vod_id":19028808,"title":"Seduzir seu chefe sem camisinha","lastmod":"2025-03-28","duration":"0:21:17","url":"/play/19028808.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjRjZjE1YjgzOWFlM2QwZDJiYTkyNGE5YjE2MjU4ZmQuanBn.cache","vod_id":19250001,"title":"Uma chefe usando meias se embriagou de propósito para seduzi-la e ter relações sexuais.","lastmod":"2026-03-19","duration":"0:31:31","url":"/play/19250001.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTcxMjVkMTI2MDQyMTRmYmUzY2Q1YjMyNjkyMTdjMzkuanBn.cache","vod_id":19064019,"title":"Uma loira que faz lives convida seu parceiro para sua casa para uma sessão de sexo transmitida ao vivo! Ela até mostra uma garrafa de vinho sendo inserida em sua vagina safada!","lastmod":"2025-03-29","duration":"0:57:48","url":"/play/19064019.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDEvNzhjODk3Mjc1NDdlMDZlY2E1NzZjMTVkY2NkYzhiZDMuanBn.cache","vod_id":19220156,"title":"Crisântemo de uma jovem com pernas adoráveis de 168 cm de comprimento.","lastmod":"2025-08-31","duration":"1:22:52","url":"/play/19220156.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGI0Zjk4OTgyZTVlZDlmYTI1Y2IxNjFhMDUxMzJmNmIuanBn.cache","vod_id":19154184,"title":"Encontros com mulheres maduras e sensuais fora da comunidade, sexo oral profundo invertido de alta dificuldade e posição de montaria com nádegas firmes e bonitas.","lastmod":"2025-03-30","duration":"0:45:02","url":"/play/19154184.html"}]},
videoTitle: '[Jovem adúltera] Sexo desprotegido com uma beldade de pernas longas não foi suficiente, ela brincou e gozou.',
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=/`;
}
};
}