Midnight Health Room EP16 Gabay sa Pagsasalsal: Isang Urologist ang Nagsabi sa Iyo Kung Ilang Beses ang Normal? Talaga ngang Sinabi ni Xiao Ou na Mas Kaaya-aya ang Pagsasalsal kaysa sa Seks","lastmod":"2026-07-11","duration":"17:56","url":"/play/19163809.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvODg1ZDE1ZjYyMzQyYmI2M2Y0NDhmNWVlZGYwYmUyY2YuanBn.cache","vod_id":19149877,"title":"Sabit sa Pader! Baguhang Estudyante sa Kolehiyo Lamang! Ano ang nasa loob ng ari? Isang malaking puwit na nakausli mula sa dingding, palihim na sumisilip mula sa likuran habang naglalaro ng aiming para sa matanda. SKMJ-701","lastmod":"2026-03-24","duration":"03:02:21","url":"/play/19149877.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDIxMzIwODUyMDYyY2NjMGI5ZGMzMzA1YmRkOWM5MjUuanBn.cache","vod_id":18929520,"title":"Isang magandang babaeng live streamer na may manipis na bangs ang walang suot kundi puting belo, at ang kanyang masturbesyon at masahe sa puki ay lubos na kaakit-akit.","lastmod":"2025-12-14","duration":"00:42:07","url":"/play/18929520.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MDkvYTc4NzNjOTZhZmRmZWJiZjY1ZmZjZDIwMzQ3NjFkY2IuanBn.cache","vod_id":19046153,"title":"[Level 3] Bakit nga ba talaga ginawa iyon ni Secretary Kim?","lastmod":"2025-08-08","duration":"52:18","url":"/play/19046153.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTFmM2Q0YWVjZWQyY2UxZDEyNjNmMWEwNDhlMzhlZTkuanBn.cache","vod_id":19002447,"title":"ONEZ-141 Isang mag-asawang gustong magkaroon ng anak ang gumawa ng video ng kanilang anak mula simula hanggang katapusan. FILE.002 Aya (25 taong gulang), na nagtatrabaho sa isang kumpanya ng advertising.","lastmod":"2025-03-23","duration":"01:59:17","url":"/play/19002447.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2EwMWEwNGFhMDM3MTcwMzdiMTcxMTQxMTg4MTAzNTcuanBn.cache","vod_id":18998208,"title":"Hindi ko masabi sa kanya na niyayakap ako ng biyenan ko araw-araw.","lastmod":"2025-12-14","duration":"02:00:06","url":"/play/18998208.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDU2MDRjYmRlM2EzMTYxNTM2MTA0ZDA2N2U3ZGZjZTEuanBn.cache","vod_id":18970024,"title":"[Mga Subtitle na Tsino] MIDV-254 Isang walanghiya at mala-akit na babaeng estudyante ang umulit ng isang taon para makapasa sa kanyang mga pagsusulit, para lamang gawing palikuran ng semilya ng isang grupo ng malalaswang matatandang guro—gang rape tutoring—panaginip.","lastmod":"2025-12-14","duration":"02:26:19","url":"/play/18970024.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly8xNTI2MDMwOXAudG9wLzIwMjYwMzEyL1pIaUxseEd4LzEuanBn.cache","vod_id":19148138,"title":"DJJR-003 - Leak: Ano ang mangyayari kapag sabay mong pinasigla ang isang vibrator, kiliti, at clitoris? Sayaka","lastmod":"2026-03-13","duration":"56:31","url":"/play/19148138.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWE0NjhkOTVjMzhhNTMyNWVjNDJiMjI4Y2UxNWIyOGUuanBn.cache","vod_id":18975999,"title":"✅Malibog na Puta✅ \"Guro, pwede ko bang kainin ang malaki mong titi? Gusto mo ba? Opo! Sige, gumalaw ka na!\" Isang babaeng ipinanganak noong dekada '00 na may malaking suso ay sobrang malibog, aktibong nakasakay at naglilingkod sa kanyang amo.","lastmod":"2025-12-14","duration":"00:10:47","url":"/play/18975999.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTcvZGNhZDRmYTk3NTU3YmZlNGFjZTUyODYwZTUwZmIyODAuanBn.cache","vod_id":19033888,"title":"CAWD580 Isang sikretong hindi mo masabi sa iyong mga kaibigan: Pagkatapos ng eskwela, sa isang madilim na silid, nakikipagtalik ka sa mapanganib at malalaswang sekswal na gawain kasama ang isang mahalay na lalaki.","lastmod":"2025-05-17","duration":"01:56:32","url":"/play/19033888.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9pYy4xNTUyNTAyMTQudG9wLzIwMjYwMjE4L2tUc1ptWkcyLzEuanBn.cache","vod_id":19144370,"title":"Isang bagong kasal na asawa, na umaasang makapagbuntis, ang nahumaling sa kasiyahan ng paglabas ng ari bilang lunas sa pagkabaog. (Ayami Mori KSBJ-400)","lastmod":"2026-02-19","duration":"02:02:00","url":"/play/19144370.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDIxODg3YjQ0ZGNmYjI3NGIyYmQ2NDkzNWNiYjI0ODguanBn.cache","vod_id":18992857,"title":"JUY-867 Hindi ko masabi sa asawa ko na nabuntis ko ang biyenan ko… - Sa loob ng dalawang araw, isang gabing pamamasyal sa mainit na bukal, nawalan ako ng kontrol at patuloy na naglalabas ng ilong sa loob niya. - Ayane Haruka 1","lastmod":"2025-03-23","duration":"01:56:52","url":"/play/18992857.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDEvZWRlMmExN2JiODdiNWQ3ZDZkYTI3YzM5NDBkMWFkNjMuanBn.cache","vod_id":19060556,"title":"Ang aktres na numero uno na gusto mong maging katalik: Akari Shinmura DX Akira Shinmura YMDD_413","lastmod":"2025-10-31","duration":"04:04:08","url":"/play/19060556.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjM3NzM4MTZiYWMyNDFlNTRmZTQ2NTBkOWZhODdjMmMuanBn.cache","vod_id":19004856,"title":"A Day To Do It (2016). KR. UNCUT. WEB-DL. 1280x720p. x264. AAC-KOOK. [Koreano na may mga subtitle na Tsino]","lastmod":"2025-03-23","duration":"01:25:00","url":"/play/19004856.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjYvNzEwOTgyMTI0NTZkZDFkMDI5NDA5ODA2NTczNjZjMTQuanBn.cache","vod_id":19054095,"title":"Bakit niya hinubad ang kanyang bikini...? Kira Kira (辉星きら) FWAY051","lastmod":"2025-09-25","duration":"01:49:52","url":"/play/19054095.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDk4ODUzNTc2ODhmY2Q4OTNjZDk0ZDk3ZDFjMWVkZTYuanBn.cache","vod_id":18938319,"title":"[Mga Subtitle na Tsino] NASS-175 Pagpapagaling Ngunit Malaswa: Ang Asawang Sikat na Noon Pa Mong Hinahangad","lastmod":"2025-03-22","duration":"02:04:26","url":"/play/18938319.html"}]},
videoTitle: 'Sabihin mo sa akin kung ano ang gusto mo - D4687775_1080p_6000',
language: 'fil',
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('Nakopya na ang link!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Nakopya na ang link!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Nakopya na ang link!');
}
}
},
// 切换布局
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=/`;
}
};
}