Tabu: Uma Mãe Madura Oscilando entre a Razão e o Desejo, 12 Pessoas, 4 Horas 2 MBM","lastmod":"2026-07-11","duration":"04:00:32","url":"/play/19162558.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjlmYmQyYWI5N2Q0MTM5YjEwODAyN2YzMjYxYjUyZjAuanBn.cache","vod_id":19010194,"title":"SHKD881 A melhor amiga da minha filha, eu a conheço desde pequena. Ela entrou na empresa logo depois de se formar, então eu a uso como meu brinquedo sexual. Yuki Nono.","lastmod":"2025-03-24","duration":"02:00:18","url":"/play/19010194.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTUvZWJkOWE4YzJlNDgzZjQ0MzU5YTFhNTU1OTNlNDY4NWYuanBn.cache","vod_id":19134655,"title":"Esposa grávida, massagem erótica no canal vaginal, luta corporal incrível, golpes com o pulso, orgasmo intenso, lésbica gritando. Atriz desconhecida KSAT-098","lastmod":"2025-12-22","duration":"04:32:53","url":"/play/19134655.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWQzYzI3MDE1NTM1YzA1OTRmNWM0MmIzNmU1ZmYwOTEuanBn.cache","vod_id":18991239,"title":"C-2530 Esposa e marido bêbado dormindo juntos 11","lastmod":"2025-03-23","duration":"01:32:01","url":"/play/18991239.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjMvNTQ0MGJlMDExODA0ZGVlYWUxMTdiZGRmOTAzMDAxNjcuanBn.cache","vod_id":19054010,"title":"Aquelas esposas infiéis que só pretendiam se masturbar... ficaram tão excitadas sexualmente que acabaram tendo relações sexuais. (Ator desconhecido GOJU282)","lastmod":"2025-09-22","duration":"04:37:17","url":"/play/19054010.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWM3NDNhMWNjMzA3MDRlMWE4NDM0MWY5MTYyZGM1NWEuanBn.cache","vod_id":19016005,"title":"MEYD503 Um caso intenso e apaixonado entre uma dona de casa frustrada e o homem que a engravidou, Matsumoto Nami.","lastmod":"2025-03-24","duration":"01:59:17","url":"/play/19016005.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWI1ZTM3NTk4ODY0ZjI0YWY4NWNlNzgzYmE1OTQ5ZGQuanBn.cache","vod_id":19007987,"title":"MCSR355 Hoje minha esposa está tendo um caso. Outono, 4 horas, 10 pessoas.","lastmod":"2025-03-24","duration":"03:59:50","url":"/play/19007987.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvNDk1M2E3ZjViYzk1YTI2Y2QwMTAzYzNiNTIwOTFkODMuanBn.cache","vod_id":19051178,"title":"[Chinês] SONE592 Não sei nada sobre os tempos de escola da minha esposa, mas quando a vi roubando o uniforme da minha sobrinha, senti uma estranha excitação... Não a vejo há cinco anos.","lastmod":"2025-09-04","duration":"02:02:09","url":"/play/19051178.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDRiMjVhNDM0Zjg5OWFkYmE5MjFmNjcxM2EzZjZmZTUuanBn.cache","vod_id":18956487,"title":"A verdadeira história do MMMB-088 Hot Spring Inn! (4 horas)","lastmod":"2025-12-14","duration":"04:02:13","url":"/play/18956487.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjEvNTNjNzAyMmM3ZWRjOTI0YzNkNGU0ZDcwNjk2MTM1NmYuanBn.cache","vod_id":19058681,"title":"A esposa do meu lindo irmão... Descobri o segredo muito frustrante da minha cunhada: ela está procurando um aplicativo de encontros. (Hamazaki Mao, PJAM021)","lastmod":"2025-10-20","duration":"02:07:13","url":"/play/19058681.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2UwOTk2NTBmOGY1NTIxMDYyMzIyYWFlNDFlM2VkYjAuanBn.cache","vod_id":18974302,"title":"[Legendas em chinês] RBK-072 Movida por uma curiosidade moderada… A confissão de uma mulher sobre sua entrada na indústria do sexo feminino. Hino, uma jovem esposa obcecada por sexo, e sua série de ações imprudentes.","lastmod":"2025-03-23","duration":"01:57:22","url":"/play/18974302.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTdkZDk0MmFhNjYwZThkMTAwOWNhMGQ5YjAxNGM2MmQuanBn.cache","vod_id":19005311,"title":"MIAA-875-C Eu ainda amo minha esposa! Depois que meu casamento com meu marido passou por um momento difícil, algum tempo depois, quando fizemos amor pela primeira vez, descobrimos que nossos corpos estavam perfeitos.","lastmod":"2025-03-23","duration":"02:31:50","url":"/play/19005311.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjAvOGFmMzE1NzFiNjdiZjI0NTM4Mjg3MmI2NjdhNTBjNDIuanBn.cache","vod_id":19039271,"title":"CJOD466 Uma bela e voluptuosa celebridade, cansada de seu marido rico, porém infértil, convida um jovem infiel para um hotel para fazer sexo com ele.","lastmod":"2025-06-20","duration":"02:00:07","url":"/play/19039271.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTI0ZjY0NGRlNGI1YzljODdjYzg5N2NlN2NhYjc2YjYuanBn.cache","vod_id":19148860,"title":"Essa mãe nadadora voluptuosa, com mamilos arrepiados, é praticamente nosso mictório para satisfazer nossos desejos sexuais. Essa esposa sexualmente frustrada e lasciva, Jane FLAV-412","lastmod":"2026-03-18","duration":"02:33:07","url":"/play/19148860.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTkvYTk5YjRmN2U2ZjdjOTg3ODhmZGJkZjRmMDIyZTJmNGYuanBn.cache","vod_id":19063243,"title":"Uma esposa louca com um pênis grande convida um pênis proeminente. Uma esposa má, para conseguir um nível diferente do seu marido baixinho. (DLDSS_344)","lastmod":"2025-12-13","duration":"02:03:15","url":"/play/19063243.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzUxNzlhODM4M2I4M2RhYzdkNjBjYTEzOTI4NjJjZjAuanBn.cache","vod_id":19135115,"title":"Um corpo voluptuoso! 4 horas de penetração com garotas delicadas. Estrelando Yokomiya Nanami, Inaba Ruka, Oizaki Yua, etc. KTRA-743","lastmod":"2025-12-25","duration":"04:03:12","url":"/play/19135115.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmQxMDAzYTFhNGYxMDY1ZWM0YzQ0OTRmMTY3YTcwOTIuanBn.cache","vod_id":19005086,"title":"JRZE-161-C: Primeiro registro de disparo de arma de fogo contra uma mulher de 50 anos.","lastmod":"2025-03-23","duration":"01:54:49","url":"/play/19005086.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvYjUzNWYwZTBjNTgwYjlmZDUxZDhjYzJkYWViMTg1MjguanBn.cache","vod_id":19065229,"title":"Uma coleção de vídeos com atos de sexo anal em três orifícios, com o objetivo de chegar em casa em até quatro horas. (Tsukino Risa ID_025)","lastmod":"2025-12-14","duration":"04:02:26","url":"/play/19065229.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYWM4MTQ4ODViMjNiOTFjN2I5YzYwNjQxMjgyM2QwNjcuanBn.cache","vod_id":19163495,"title":"Beber álcool aumenta a libido!! Sexo NTR com as esposas de 8 amigos. Atores incluem Ichijo Kimika, Enjo Hitomi, Shindo Nozomi, etc. Projeto KSB - Emaniel","lastmod":"2026-07-11","duration":"04:03:20","url":"/play/19163495.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTZlMjVmNDU1ODEzZDg4ZWU4YjY0ZmM0NmVlODI0ZmIuanBn.cache","vod_id":19022454,"title":"A festa de despedida do CLUB460 para as esposas que estavam saindo foi gravada. Minha amada esposa foi explorada pelo chefe da empresa.","lastmod":"2025-03-24","duration":"03:41:21","url":"/play/19022454.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzQ4NWM4ZWQ0MDczYWQ5NTZjMDgxNGYwMTljOTYyNjYuanBn.cache","vod_id":18928337,"title":"APNS-151 Acabei de receber um DVD contendo um vídeo da minha esposa, recém-casada e desaparecida, sendo estuprada por um grupo de homens... Volume 02","lastmod":"2025-12-14","duration":"00:20:00","url":"/play/18928337.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWU3YmU1MGYzY2M5ZWQxZDMwMTA4NjJmODM1MDdjMmMuanBn.cache","vod_id":18994115,"title":"SSNI-516 Enquanto minha namorada estava viajando, transei com a amiga de infância dela por 48 horas seguidas, da manhã à noite. Yua Mikami 1","lastmod":"2025-03-23","duration":"03:32:55","url":"/play/18994115.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjIvYTgzMGExODAxNTVhZjI3MGIxZjI2NzM2MThjOTZkNWUuanBn.cache","vod_id":19030333,"title":"A figura feminina, gradualmente mais cheia e madura, a postura vergonhosa da minha esposa e mãe, tornaram-me incapaz de resistir à ereção. Minami Momoko, Minami Momoko VENX-147-C.","lastmod":"2025-04-22","duration":"01:44:31","url":"/play/19030333.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWQ3NmIwNmE1ODczZDU2MDQ1ZGY0MjQ2Yzg2NGVlNGQuanBn.cache","vod_id":18929908,"title":"ATID-221 O Acasalamento de uma Esposa Inocente: Não Deixe Minhas Razões Abalarem... 2 Aida Sakura Volume 5","lastmod":"2025-12-14","duration":"00:19:58","url":"/play/18929908.html"}]},
videoTitle: 'MCSR355 Hoje minha esposa está tendo um caso. Outono, 4 horas, 10 pessoas.',
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=/`;
}
};
}