(Binabati kita)30 Anna Brothers Beauty Student Yui Kimura (20) Binabati kita sa iyong AV debut Kimura Yui SOD","lastmod":"2026-07-11","duration":"02:25:40","url":"/play/19153986.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzMwOWQ2ZjBkZmY2MjU5OGIyNWNmN2E4ZjZkNGYxNmIuanBn.cache","vod_id":18969013,"title":"Nagsimulang gumala ang kapitbahay kong estudyanteng babae sa bahay ko na nasa katanghaliang gulang na, at hindi ko maiwasang makita ang kanyang walang magawang ekspresyon... Tag-init","lastmod":"2025-03-28","duration":"01:59:59","url":"/play/18969013.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzg4ZjUzZTk0NmI4MjhhOTk5NWU4MDNjNjNhZTJkOTQuanBn.cache","vod_id":18982293,"title":"Babaeng estudyante sa kolehiyo na may malalaking suso ay nagbubulalas sa loob ng kanyang guro","lastmod":"2025-03-28","duration":"02:18:41","url":"/play/18982293.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTExZjZkNjBlZWU4MGIzNmUyOWI0MDBkNzE2ODgxMjQuanBn.cache","vod_id":19137510,"title":"DPSJ-004 - Mga Lumabas na Malupit na Video ng Magagandang Babae, Tomo 4: Pampublikong Parusa sa Sekswal ng Dalawang Babaeng Estudyante","lastmod":"2026-04-17","duration":"49:39","url":"/play/19137510.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNTg2ODViMTI1N2M2YjhhYmE0M2M0OGY1OGQ2ODY1YTIuanBn.cache","vod_id":19120988,"title":"Isang malagim na muling pagsasama: Pagkatapos lumipat sa isang bagong bahay, ang kapitbahay ay ang homeroom teacher na nakarelasyon niya noong paaralan. FERA-206","lastmod":"2026-01-28","duration":"01:42:24","url":"/play/19120988.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNGRmNDYzMjYxZGYzNDhhZjMxZjJjNjJlYzhiZTlkYjMuanBn.cache","vod_id":19124042,"title":"Ang mga pribadong kinunan at inilabas na video ay nagpapakita ng isang batang babaeng estudyante na dalawang beses na sinasaktan, kasunod ang isang delingkuwenteng babaeng may tattoo na sinasanay, at pagkatapos ay isang babaeng may malaking suso na naka-uniporme na may pigtail at nakalantad ang mukha, na nagpose sa kamera nang naka-peace sign at sinasaktan.","lastmod":"2026-02-12","duration":"36:16","url":"/play/19124042.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTZkYTUxNTViODY2M2Y2ODYyM2FkZjI1YzAzZjgzOGYuanBn.cache","vod_id":19121498,"title":"Isang mabangis at walang pigil na orgy kasama ang 21 babaeng estudyante na masidhing mahilig sa seks, na tumatagal hanggang sa bulalas—isang 4 na oras na seleksyon. HHF-087","lastmod":"2026-01-30","duration":"04:02:44","url":"/play/19121498.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYWYyNGM1OTJkMDkzYWY0YmU2NGFjYWEwODY3NzU4NmYuanBn.cache","vod_id":18984295,"title":"Pagbabalik sa kabataan: Subukang magsuot ng uniporme para magdagdag ng dating atmospera.","lastmod":"2025-03-28","duration":"59:06","url":"/play/18984295.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWMyYjYyMjQ5MDMyYjQzMWVmZTkwMWE1ZmJlNDZjN2IuanBn.cache","vod_id":19058124,"title":"Si Liu Yifei sa seksing uniporme, madamdaming eksena sa pakikipagtalik","lastmod":"2025-03-29","duration":"12:33","url":"/play/19058124.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDgvNzllOGE1ZTcxMTAwZWYxYTQ4ODY0NGZjMWJiMTViZjAuanBn.cache","vod_id":19082740,"title":"CAD031 Bagong Unipormeng Kamera","lastmod":"2025-07-07","duration":"01:56:09","url":"/play/19082740.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjk3YTQ5ZDVkOGI4NzU4NDFiM2I1NGQ4ODU2YjRhYmQuanBn.cache","vod_id":19119532,"title":"Estudyanteng Diwata at ang Kanyang Guro 1","lastmod":"2026-01-19","duration":"16:57","url":"/play/19119532.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTVmNGM0NDI4NTJhOWVkNTk3YjAwNjFmZjFmMTg3NzUuanBn.cache","vod_id":19049051,"title":"Apat na bata at mukhang inosenteng mga batang babae, halos nasa hustong gulang na, ang nakitang dinidilaan ang isa't isa nang hubad.","lastmod":"2025-03-29","duration":"29:34","url":"/play/19049051.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDc4YjA3ZmZiZDUwNTA3YjI4OTUwODFlMDZjNDQ1MTcuanBn.cache","vod_id":18969342,"title":"Si BLK-435 ay tinitigan ng kanyang iniidolo na estudyanteng naka-uniporme... nilalabag siya. Eimi Fukada","lastmod":"2025-03-28","duration":"02:19:59","url":"/play/18969342.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWVkZDk5Zjk1MDY0OTFmNmE4ODA0NGJjMDY3YWRkODEuanBn.cache","vod_id":19052406,"title":"JUFE072 Isang babaeng estudyante sa kolehiyo na nakatakas matapos ma-rape ay ikinulong sa isang silid at muling ginahasa. Ang kanyang buong katawan ay naging mga organong sekswal, at siya ay nilamon habang nasa abnormal na orgasm na pakikipagtalik. Karen Mifune.","lastmod":"2025-03-29","duration":"02:25:09","url":"/play/19052406.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDdjYmM2YTEyMTU2ZDA0YzMwZTM0YWUyN2JkOTk0NmIuanBn.cache","vod_id":19022050,"title":"7. Nagsimula akong makipag-date sa isang \"sugar daddy\" nang hindi masyadong iniisip; pera lang ang dahilan. (Kaso ni Mayu, kinasasangkutan ng isang babaeng estudyante sa kolehiyo 7)","lastmod":"2025-03-29","duration":"02:10:10","url":"/play/19022050.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMGQyYjc1OTA1YWEzZWI3YWYwOTBjYzY0OGQxMWZhZjIuanBn.cache","vod_id":19135843,"title":"[4K] Ang pang-akit ng isang napakacute na nakababatang kapatid na babae ay nag-iiwan sa akin ng lito at nakatayong katawan araw-araw. EKDV-774-C","lastmod":"2026-04-08","duration":"02:13:08","url":"/play/19135843.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWMyMDIzZTBlYjE3YmE4MGMwODkyYWFhNjg4NmIyY2QuanBn.cache","vod_id":19002205,"title":"Isang seksing ina na nagpapasuso ang nagpapakita ng sarili sa suot na lingerie, mapang-akit na nagpapakawala ng gatas sa kanyang kasintahan, gumagamit ng maliliit na clip sa kanyang vulva, at mapaglarong pinipisil ang sarili niyang ari para makagawa ng likido sa ari. Ang libog!","lastmod":"2025-03-28","duration":"01:19:11","url":"/play/19002205.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDI1MzdhOGNlOTRlODBmMWIyNmY0MDYxNTgxMDNjYTEuanBn.cache","vod_id":19055470,"title":"10musume081923_01FHD Uniform Era ~Nakapagtapos na ako ng high school kaya bibida ako sa AV~ Onishi Megumi.","lastmod":"2025-03-29","duration":"01:01:34","url":"/play/19055470.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODNmODkyOGE5OTU4ZjllMGMwNzFhOTQ1MTk1OWYxNjguanBn.cache","vod_id":19024422,"title":"Natagpuan ko na siya! Isang 20-taong-gulang na estudyante sa kolehiyo na nagngangalang Ayaka mula sa isang rural na lugar ng Fukui!","lastmod":"2025-03-29","duration":"01:54:50","url":"/play/19024422.html"}]},
videoTitle: 'Tukso sa Hubad na Uniporme ng Pangulo ng Konseho ng Estudyante',
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=/`;
}
};
}