HEYZO 3411 Ejaculação Contínua! Festa do Clímax Vol.4 – Kusakabe Hina","lastmod":"2026-07-11","duration":"","url":"/play/19207274.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDQzOTE0YjZmMzAwZGJmZDFmMjQ0MDU1YmFiZmZhZTIuanBn.cache","vod_id":19117579,"title":"MAAN407 tem quase nove cabeças de altura! Uma beleza super esbelta e de pernas longas! Uma modelo ativa de uma produtora de entretenimento! Ela aspira ser uma estrela e está disposta a oferecer serviços sexuais para alcançar a fama! Ela fará tudo o que você pedir e lhe proporcionará as técnicas eróticas definitivas e um serviço completo! \"Eu basicamente me lembro de tudo o que os homens gostam!\" .","lastmod":"2025-03-26","duration":"1:02:44","url":"/play/19117579.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMTZiMGY4OGU2YTFjNWEwNmUxMmE4YTAwYzY1NGFhNjUuanBn.cache","vod_id":19110330,"title":"Três aulas, totalizando 120 minutos! Minha primeira vez ensinando para uma menina de pele clara, cabelo curto e com temática animal chamada Zhonglu. -cd2","lastmod":"2025-03-26","duration":"0:14:17","url":"/play/19110330.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTIzNGU1NmI2MWMzNDE1OWY5NDU5NDliNzkzNmFmMzIuanBn.cache","vod_id":19125640,"title":"MIDV403C Festival Amador de Ação de Graças: Palavras Obscenas e Apaixonadas e Técnicas Angélicas. Se você conseguir resistir aos limites, o serviço sexual de Mio fará você ejacular ao máximo.","lastmod":"2025-03-26","duration":"3:27:40","url":"/play/19125640.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZDE4ZjI2NTNmNzkwNzk4ODRlMmI5MDc1NGFjZWI4NTQuanBn.cache","vod_id":19179628,"title":"Depois da escola, uma linda e inocente jovem de seios fartos é domada pelo pênis de um velho, experimentando intenso prazer com a penetração! Só o pênis de um velho é o melhor! Satsuki Mei MUDR-334","lastmod":"2026-02-10","duration":"2:09:36","url":"/play/19179628.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZWIwMDk4NzI2YzcxODg4ZDg2OTA2YzMxNzRjZjcyMmEuanBn.cache","vod_id":19177670,"title":"Balançando na sua frente! Agarrando-se firmemente ao seu corpo! A super fofa Hikari, com seus seios fartos, te serve com sua buceta desprotegida! Ejaculação sem limites! Aproveite um banho de espuma com Hikari Azusa IPZZ-294","lastmod":"2026-02-01","duration":"2:04:57","url":"/play/19177670.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGRhZWNmNWFlMzFkYzRiZTViODMxMzgyNTNkZmNlN2QuanBn.cache","vod_id":19088072,"title":"Coloquei a garota da casa ao lado para dormir e depois ejaculei dentro dela... 8 pessoas, 4 horas — atores desconhecidos.","lastmod":"2025-03-26","duration":"4:01:41","url":"/play/19088072.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWNhYmVhNGQ0M2IxYWRlODM3MjgyNmM3ZTc4MTcwZmMuanBn.cache","vod_id":19088951,"title":"BDSM com afrodisíacos. Atraída pelo prazer de grandes quantidades de sêmen afrodisíaco. Arquivo de Treinamento Afrodisíaco 20: Anfitriã de Elite em um Clube de Cabaré de Luxo.","lastmod":"2025-03-26","duration":"1:50:29","url":"/play/19088951.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvZjZlZGVmOTU1ODIyM2RiNGZkNTBhZDNmNmFhM2MxYmYuanBn.cache","vod_id":19165908,"title":"DMOW-222: O Controle da Masturbação e da Ejaculação de uma Vadia Pervertida, estrelando: Hinako Matsui, Hanagoro Tsubaki, Haru Kikuchi, etc.","lastmod":"2025-12-13","duration":"2:26:52","url":"/play/19165908.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzg2NjgwYWUyMjY3MWRmOTliZjM4NmVjN2IyYjliZDEuanBn.cache","vod_id":19116433,"title":"OKS069 Molhada, brilhante e justa, a sagrada roupa de banho escolar de Sakuragi Yukine. Aprecie a garota fofa em seu traje de banho escolar! Este AV começa com uma cena secreta da garota trocando de roupa, incluindo closes de seios de tamanhos variados, genitais depilados, genitais com pelos, axilas com pelos e outras cenas fetichistas, jogos com sabonete líquido, sexo em grupo com trajes de banho escolares e ejaculação sem proteção, tudo completamente vestida.","lastmod":"2025-03-26","duration":"1:33:40","url":"/play/19116433.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMGJjZThiYzI3ZTBjYzVjNTgwODA1YTU1YTJjYjg0MjguanBn.cache","vod_id":19046045,"title":"Uma garota bonita e de cabelos longos, com um visual impecável, rebolou seu bumbum arrebitado e teve múltiplos orgasmos!","lastmod":"2025-03-26","duration":"1:31:30","url":"/play/19046045.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMWUxNTEzNTViM2ZkNmVjMWE1MWQwMmUzNzNhNDk1OTkuanBn.cache","vod_id":19028535,"title":"A ejaculação contínua de cordeiros perdidos","lastmod":"2025-03-25","duration":"0:15:41","url":"/play/19028535.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTIvZjZhOGVkZWY1NjkzNGQwNmEwMTU3NTdkNThkNjlmOTEuanBn.cache","vod_id":19138924,"title":"MUCD-311 apresenta sexo adorável com garotas super fofas de uniforme, que vão te levar ao orgasmo. Também inclui sexo com duas garotas lindas até todo o esperma sair, muitos jatos de esperma incríveis, sexo oral, sexo facial e expressões de orgasmo. MUCD-311 é o melhor.","lastmod":"2025-06-12","duration":"2:13:47","url":"/play/19138924.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzc1OTEyNzE4N2RmMzQ0MzI5NDA0NDY2NzA5ZmVkYjUuanBn.cache","vod_id":19073449,"title":"NHDTB379 Mesmo com a esposa presente... uma garota sentada embaixo do kotatsu o fez ejacular com masturbação pegajosa (incesto).","lastmod":"2025-03-26","duration":"2:04:18","url":"/play/19073449.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMzg1ZTMzZDI1NjRhOTcwMDE2OWU5YTBmZjcyYmQxNDAuanBn.cache","vod_id":19044629,"title":"Sempre que tem tempo livre, essa vizinha de aparência comum e com seios fartos descarrega seus desejos sexuais em mim.","lastmod":"2025-03-26","duration":"2:41:04","url":"/play/19044629.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTlkMWViYjU2YmZmZjMwZTUxMGExZWQyYzUwNWFmYzAuanBn.cache","vod_id":19081288,"title":"Uma esposa masoquista frustrada: \"O motivo de eu estar aqui hoje é porque meu marido não me deixa ejacular...\" Mizuki Sakino possui uma técnica incrível e um pênis curvado que lhe permite ejacular.","lastmod":"2025-03-26","duration":"2:00:05","url":"/play/19081288.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvM2M1NmFkMzY0OGNiNmE5MTA0OGNhNDBmZmE2MjA4MWQuanBn.cache","vod_id":19057959,"title":"Todas as meninas têm pênis.","lastmod":"2025-03-26","duration":"0:15:42","url":"/play/19057959.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvM2IxMGFkNDViMGU5MzQ5OGRhYjllMDEwMjJlM2MwYmEuanBn.cache","vod_id":19195124,"title":"Depois da Escola: Menino ou Menina? O Cotidiano de Pessoas Comuns Vestindo-se de Casal PETSHOP - Tribo Iludido","lastmod":"2026-04-25","duration":"1:52:09","url":"/play/19195124.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMzM2Zjg4N2VmZjU1MDIwMGNhNTdjMjVkMTkyOTNiNWMuanBn.cache","vod_id":19126506,"title":"STARS277 Uma linda garota que voltou para o campo foi repetidamente estuprada por um velho possessivo em um dia de verão.","lastmod":"2025-03-26","duration":"1:06:51","url":"/play/19126506.html"}]},
videoTitle: 'Garotas de boate ejacularam violentamente depois da aula, 7 homens, durante 240 minutos!',
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=/`;
}
};
}