Kasama ang babaeng amo ng crush ko MOND-252-C","lastmod":"2026-07-11","duration":"02:11:40","url":"/play/19161209.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGFiY2FjYWQzZWM5NTUxY2VkNjQ5NzEzMzRmY2RmZDguanBn.cache","vod_id":19007982,"title":"[Serye na nakakaakit sa mata] Mga inihurnong pancake, Thai teh tarik (tinitimplang tsaa), pagkamping sa gabi para manood ng mga bulalakaw.","lastmod":"2025-03-24","duration":"08:07","url":"/play/19007982.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODQ4ODljYjE2ZmQyYWIzMjU5N2VmMDY5ZDQ4ZTdlYmYuanBn.cache","vod_id":19025446,"title":"Nakita ni SSNI543 ang aking guro, na dumating para iligtas ako, na nilalabag ng mga delingkuwenteng lalaki habang nagmasturbate. Gustung-gusto ko ang kahiya-hiyang kalagayan ng taong mahal ko. Bagong uri ng NTR na si Hoshino Nami.","lastmod":"2025-03-24","duration":"01:58:38","url":"/play/19025446.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvODZmZmIxZTc4NzFiNGVkNTY4NDcwN2Y4YjgzNjRhNTMuanBn.cache","vod_id":19140674,"title":"Isang seksing babaeng naka-itim na medyas ang nagpaakit sa kanyang dayuhang kasintahan kaya agad itong napukaw sa sala at pinuno ang kanyang puke ng kanyang malaking titi.","lastmod":"2026-01-28","duration":"04:39","url":"/play/19140674.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDE1YTgwNmNlNTQ2NWZlZjk1ZDU5ZjEyNDJlZDhkNzMuanBn.cache","vod_id":18987789,"title":"[Mga Subtitle na Tsino] MIAA-958 Isang pribadong tutor na may malalaking suso at masusing atensyon sa iyong mga marka—pinabubuti ang iyong mga marka sa pamamagitan ng isang maalab at creamy na pribadong sesyon ng pagtuturo—Yuri Morishita.","lastmod":"2025-12-14","duration":"01:59:37","url":"/play/18987789.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTYvOTAwMDQ5MjA5MjkyM2E3Mzc2YWMyMTVlYjYyNzY4ZDkuanBn.cache","vod_id":19038619,"title":"Si MOND254 at ang aking kahanga-hangang babaeng amo","lastmod":"2025-06-16","duration":"02:01:43","url":"/play/19038619.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTYwYjVkOGY4ODkwNDBkZGMxODViNGY1MGI1Y2E4NGMuanBn.cache","vod_id":18928776,"title":"ARM-812 Tinutukso ako ng aking babaeng amo, hinahalikan ang aking mga labi, pinipilit akong inumin ang kanyang laway, at tinutukso ang aking mga utong habang pinapakalma ang aking mahal na nasasakupan. Tomo 01","lastmod":"2025-12-14","duration":"00:20:01","url":"/play/18928776.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDYyMzcxNzE0MTVlOTVlOGM5YzA4MWVjZGZmZmJmNTkuanBn.cache","vod_id":18964203,"title":"Isang bata at malakas na lalaki at ang kanyang matangkad at modelong kasintahan ay nakipagtalik nang walang proteksyon sa iba't ibang posisyon, kabilang ang woman-on-top at penetration. Ang kanilang pagtatalik ay malalim na magkaugnay.","lastmod":"2025-12-14","duration":"01:14:59","url":"/play/18964203.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZWQ3OWNjNjUyNTZmODQ3ODQwMjkxYjY1ZGVjMGEyY2MuanBn.cache","vod_id":19156964,"title":"Si Kayano Hana, isang aktibong guro ng musika sa isang pribadong junior high school sa Kyushu, ay magde-debut bilang AV. Sa music room, ang kanyang maamong guro ay nakakagulat na malaswa! CAWD-793-C","lastmod":"2026-05-07","duration":"01:58:51","url":"/play/19156964.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWFlN2I4ZGJiNGMxMTY2MTQ2NjM2ODhlZGU0YWY3OGQuanBn.cache","vod_id":18932761,"title":"300NTK-329 “Gusto kong makipagtalik sa aking guro♪” Isang magandang babae na nakauniporme sa paaralan ang kagagradwar lang.","lastmod":"2025-12-14","duration":"01:03:22","url":"/play/18932761.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDVmZWRjMTk0OGViNWE1MTBkMGM2ZDg0MzY0M2U0ZGIuanBn.cache","vod_id":18936009,"title":"[Mga Subtitle na Tsino] HND-792 Isang matangkad, balingkinitan, at malaking suso na babaeng estudyante sa kolehiyo ang naging guro sa elementarya","lastmod":"2025-03-22","duration":"01:55:09","url":"/play/18936009.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmM4MWUyMjU0NjgxYzU0ZTZlZjlkZTM5OTRlYjVlMWUuanBn.cache","vod_id":18973101,"title":"Isang maliit, maselang mukha, at babaeng may mataas na katayuan ang bumungad sa kanya, ipinamamalas ang kanyang kaakit-akit habang madamdaming iginagalaw ang kanyang balakang, itinutulak at umuungol sa sarap. Ang mga tunog ng kanyang mga ungol ay hindi kapani-paniwalang nakakapukaw.","lastmod":"2025-12-14","duration":"00:15:14","url":"/play/18973101.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9pYy4xNTUyNTAyMTQudG9wLzIwMjYwMjI1L2k4ZWlJeU9MLzEuanBn.cache","vod_id":19145429,"title":"Lolita twin tails, legal lolita, puting medyas, Lolita girl, aktibong kumukuha ng pang-itaas na katawan at nakasakay.","lastmod":"2026-02-26","duration":"14:52","url":"/play/19145429.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTFhYzUxYjRlNjA2NjAyMTg0Y2UwMTgzMzRkM2MzYjMuanBn.cache","vod_id":19155195,"title":"Ang ama ng aking kasintahan ay ang aking unang pag-ibig, ang aking guro... Akari Shinmura (新村あかり) KSB Kikaku-Emanuel","lastmod":"2026-04-26","duration":"01:56:20","url":"/play/19155195.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWE2YmUzYzFjMjJkZjMxZWNiNGY0ODdlNTE0MzBhMTMuanBn.cache","vod_id":18992496,"title":"[Prutas na Pie] Ang busty na babaeng guro na si Ai Sayama ay pinapahiya at nakikipagtalik sa harap ng kanyang asawa!","lastmod":"2025-12-14","duration":"15:35","url":"/play/18992496.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDMwZGRjYmZjZDZjMTY4Mzg3N2RlZGY3NzFjOWE3NTUuanBn.cache","vod_id":18966508,"title":"\"Ang ultimate BDSM master's extreme training ☛ genital ring slut series\" ay gumulat sa buong internet gamit ang isang face reveal at contrasting bitch experience sa iba't ibang genital at anal torture, na may maraming iba't ibang paraan ng paglalaro, mataas na enerhiya sa lahat ng paraan nang walang nakakabagot na sandali at walang tubig na orihinal na bersyon (17)","lastmod":"2025-03-22","duration":"00:02:20","url":"/play/18966508.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2JkZWI2YTM0MTcwNjVhYjI4Yzk5NjgxM2Q2MTNlOWYuanBn.cache","vod_id":18960980,"title":"Bumalik ang matandang lalaki para maglaro ng 3P, nakipagtalik sa binata at sa may-gulang na babae. Sa malapitang kuha niya habang dinidilaan ang kanyang ari, kitang-kita ang kanyang malaki at basang puwet. Pagkatapos ay madamdamin siyang sinipsip ng binata, binigyang-kasiyahan ang matanda bago lumipat sa nakababatang lalaki para sa anal penetration.","lastmod":"2025-03-22","duration":"00:41:33","url":"/play/18960980.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzNhMWYxMGVhYjA0ZGIzNDhhNjYxMmJhOTc4ZWQ1MmUuanBn.cache","vod_id":18996073,"title":"[Tomboy] [Western Lesbian Series] Ang sekretarya at ang malibog na tomboy na naka-lingerie ay naghubad sa isa't isa at pagkatapos ay dinilaan ang ari ng isa't isa!","lastmod":"2025-12-14","duration":"07:59","url":"/play/18996073.html"}]},
videoTitle: 'Habang naghahaplos sa sala, biglang naging nasa ibabaw ang babae – “Serye ng Pagtuturo ng Guro” S3: E0!',
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=/`;
}
};
}