A Viúva Amarrada - Uma bela esposa, de coração partido e exausta, se contorce de prazer enquanto é amarrada por cordas - 4 Estrelando: Akari Shinmura, Aya Shiomi, Kurumi Tamaki e outras atrizes Nadeshiko","lastmod":"2026-07-11","duration":"04:01:35","url":"/play/19164741.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2I5OTZiNTFjNzliYTg1Yzg1MGFkNmQ4ZDc3ZDQ0NGUuanBn.cache","vod_id":19018097,"title":"Minha colega de quarto \"voltou para a China\" - a tentação da carne de porco desfiada.","lastmod":"2025-03-24","duration":"27:47","url":"/play/19018097.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTJmNDY0ZWQxM2E2MGRiNjNmMThkZGYzZDIzMGI3N2YuanBn.cache","vod_id":18975707,"title":"A jovem e sedutora mulher de meias pretas e uniforme tentou o rapaz a fazer sexo com ela duas vezes seguidas. Ela lambeu delicadamente o pênis dele enquanto seu rosto estava exposto, e depois o abraçou, chupando e penetrando-o.","lastmod":"2025-03-23","duration":"01:11:10","url":"/play/18975707.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmZlOWY5M2MxM2MxMTUzMjE1ZTFhYjliNzgzZGYyNjMuanBn.cache","vod_id":18995483,"title":"Apresentadora coreana com seios fartos aplica óleo essencial e massageia os seios de forma sedutora.","lastmod":"2025-12-14","duration":"23:00","url":"/play/18995483.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjgwMGVhYjgwMWMzMDg1NjVkYzZkNjU2MTI2YTU5ZDMuanBn.cache","vod_id":19000209,"title":"Apelidado de \"Diretor Yang\" pelos internautas de ator vencedor do Oscar, ele se encontrou com sua bela namorada de 18 anos, \"Pequena Jike Junyi\", e desfrutou do prazer da penetração de olhos fechados. (Gravação original em alta definição)","lastmod":"2025-03-23","duration":"01:34:34","url":"/play/19000209.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjgvMzlkYzAxOTIzYTg1YmE2MjAzOTM3ZGZkMTc3ZjgzOTQuanBn.cache","vod_id":19031013,"title":"Estou prestes a me casar e ainda sou virgem. Fui seduzida por um aluno e tive relações sexuais sem proteção com a monitora de classe voluptuosa, Fukada Yuri, depois da aula. (Asada Yuri EBOD-753-C)","lastmod":"2025-04-28","duration":"02:24:01","url":"/play/19031013.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDI4NmE1MTVhMzQyNTQzMmNjMWE5MGE5NzM2ZTQ4ZWYuanBn.cache","vod_id":18966586,"title":"Muitas pessoas estão procurando comprar a mulher madura, sexy e de pernas longas do grupo de dança sensual Yingxiu, Xin Lei, que se apresenta com várias lingeries transparentes, revelando sua vulva e realizando danças provocantes com movimentos de quadril. (4)","lastmod":"2025-03-22","duration":"00:04:04","url":"/play/18966586.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMGEzY2NhOGE2NmFjNDZlNGIzODgzZDQwYzViY2M0N2IuanBn.cache","vod_id":19157438,"title":"Xiao Bao procura modelos celebridades da internet com figuras atraentes e perfeitas.","lastmod":"2026-05-10","duration":"50:46","url":"/play/19157438.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTE2NjFiMGVlY2E2MTg2N2U0YTA2ZjkxNGQ0OWFkZDEuanBn.cache","vod_id":18998370,"title":"Heyzo-2053 Desfrute do prazer da massagem erótica! ~Tomando Shiina Miyu como exemplo~ – Shiina Miyu 1","lastmod":"2025-03-23","duration":"22:03","url":"/play/18998370.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWMwNjhlYTgxYWMxMDhkNmYzZTA2YWFmYTcxNWI2NmUuanBn.cache","vod_id":18979924,"title":"Um encontro noturno sedutor com uma babá de alto nível, incluindo revelação completa do rosto, extremamente atraente em meias brancas, transbordando fluido vaginal, mostrando closes de sua vagina para seus admiradores masculinos, amassando os seios e espremendo leite para si mesma.","lastmod":"2025-12-14","duration":"00:30:58","url":"/play/18979924.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjFmNDg0NjdkZTFlOTlkOWE1ZjA2YjYwYzk4OTg1NjEuanBn.cache","vod_id":18960321,"title":"BBAN-390 Conheci uma garota nas redes sociais com uma conta secreta que gostava de mães. Drogava-a e a vendi para outra pessoa. Fizemos sexo de graça. Uma série de orgasmos lésbicos, embriagadas de prazer até o amanhecer.","lastmod":"2025-12-14","duration":"02:03:09","url":"/play/18960321.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9hLjE1NTEyMTAudG9wLzIwMjUxMjA4L055WVBoYVpYLzEuanBn.cache","vod_id":19065021,"title":"Os seios de uma viajante solo sendo alvo de assédio; uma viagem a uma fonte termal com detalhes em renda e comportamento submisso; Mari Nishio, Hikari Kinoshita, Momo Shiraishi; BBAN-547","lastmod":"2025-12-14","duration":"02:33:52","url":"/play/19065021.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGEzMDlkN2ZmMmU2OGJiNWMzZmI4MjQ1ZjA1Mjc1MTEuanBn.cache","vod_id":19008170,"title":"[Abacaxi Rosa] Contagem Regressiva da Tentação Volume 4 Kagami AKIRA Capítulo 1","lastmod":"2025-03-24","duration":"28:31","url":"/play/19008170.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmU1ZTJkMGY5MTI4N2Y4M2I4YTU4OTYzOGNhNWJlMDQuanBn.cache","vod_id":18945290,"title":"Uma jovem curvilínea, sexy e com pelos pubianos à mostra, usando apenas uma tanga, com as nádegas balançando, está sendo penetrada por trás com um pênis grande e um vibrador. É incrivelmente sedutor; não perca!","lastmod":"2025-03-22","duration":"01:04:47","url":"/play/18945290.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDMxZmIzYjBhYTJiNDI2NGI0OGM1OTJiODU3MTZiOGIuanBn.cache","vod_id":18991034,"title":"Tang Yan seduz virgens com meias e fetiche por pés.","lastmod":"2025-12-14","duration":"04:06","url":"/play/18991034.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzdjNWI4OTliZTg5ZDUxNmFjN2I4NzZlYWE2NTRjNmEuanBn.cache","vod_id":18924651,"title":"Uma garota usando máscara aplica uma máscara facial de pepino e depois usa o pepino para se masturbar, esfregando a vulva até que ela fique úmida, rosada e atraente. É muito tentador; não perca se você gosta desse tipo de coisa.","lastmod":"2025-12-14","duration":"00:56:06","url":"/play/18924651.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWE5NmE3MTZmYzI4ZTIwOGU5YWU1NjE0ZTg3OWNmYzQuanBn.cache","vod_id":18937782,"title":"SIM-042_A A experiência de uma estudante de Yurufua em um bar de seios!? Seus seios fartos e sensíveis são amassados e chupados.","lastmod":"2025-12-14","duration":"01:55:59","url":"/play/18937782.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWNjYWNhZWYwOTBlN2UyYWQ5NDNjYzE0NzNjZThlZmQuanBn.cache","vod_id":18929500,"title":"Duas garotas lindas e atraentes se masturbando, fazendo sexo oral, ficando excitadas e depois sendo penetradas por trás – é muito tentador e sedutor. Não perca se você gosta desse tipo de coisa!","lastmod":"2025-12-14","duration":"02:40:06","url":"/play/18929500.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWRlN2FmY2U1ZTExYzA5YzVlMDMxZWRiNDRiNDE0NDMuanBn.cache","vod_id":18944989,"title":"Garota voluptuosa de máscara, uniforme de empregada sexy, meias pretas com a virilha aberta, se tocando, brinquedos sexuais, movimentos de vai e vem, bunda grande e sexy, muito tentadora, não perca se você gosta disso.","lastmod":"2025-12-14","duration":"00:48:58","url":"/play/18944989.html"}]},
videoTitle: '[4K]SSIS-601 Desfrute da tentação sagrada dos seios de roupas obscenas sem se despir, frenesi paizuri, sex shop yameno Aika',
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=/`;
}
};
}