Habang wala ang kanyang mga magulang, inimbitahan ng nakababatang kapatid na babae ang mga kaibigan para sa isang magdamag na sesyon ng pagbabasa. (Ang sumusunod ay tila walang kaugnayan at posibleng tekstong ginawa ng makina: \"Sa mga tauhan nina Yura Kana, Minase Akari, Sengoku Monaka, atbp. OFFICE K」S\")","lastmod":"2026-07-11","duration":"02:09:30","url":"/play/19166979.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTAxNDFjNjQ1YjI3ZWM4OWFiNGVkZTFkYmVhMTUxZTEuanBn.cache","vod_id":19014677,"title":"CAWD005 Isang magandang babaeng mestiso na hindi pa nakaranas ng orgasm ang napilitang mag-orgasm nang paulit-ulit. Sa isang serye ng mala-piston na mga eksena sa pakikipagtalik, naranasan niya ang isa pang bahagi ng orgasm sa unang pagkakataon. Ayami Shiono.","lastmod":"2025-03-24","duration":"02:28:33","url":"/play/19014677.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvZWQ2YmU0NzFmYTRhZmRlZTUyYzg2Njg3YzliOWU4NDYuanBn.cache","vod_id":19168963,"title":"Limang taon na akong nasa isang kaswal na relasyon sa kaibigan ng anak ko. Nakikipaglaro nang may pagnanasa sa isang lalaking mas bata sa akin... Adik na adik ako sa penetration sex. _Oshima Yuka_ Madonna","lastmod":"2026-07-19","duration":"02:03:52","url":"/play/19168963.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGQxZDY1MjA5N2Y1ZTFiNDZmMjc3M2QwYzNiNTgxM2MuanBn.cache","vod_id":18949135,"title":"[Aktres na Hapones] - bdyjy84 - CESD-851 Ako ay tinarget at nakipagtalik sa isang senior na kapareho ko ng kasarian. Tano Yui, Oura Mana, Michi, atbp. 2019-12-20 Oura Mana, Michi, Tano Yui, kambal na babae, Michi...","lastmod":"2025-12-14","duration":"02:12:13","url":"/play/18949135.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvODdkM2RjZjVmNmUxYjA4NDAyYTk0M2NjNTdkNTI0ZmMuanBn.cache","vod_id":19167710,"title":"b Pinakamahusay na Hubad na Larawan 02 Shiraishi Marina INTEC Inc-cd2","lastmod":"2026-07-11","duration":"02:22:07","url":"/play/19167710.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDFjNGM3MTE5ZTNjZjI0ZTkyNjEyZTcyN2U3YWZlM2UuanBn.cache","vod_id":18940748,"title":"[Mga Subtitle na Tsino] SSNI-581 Paghahalikan at Pagtutunaw na Magkasama: Matalik na Kontak, Malalim na Paghahalikan","lastmod":"2025-03-22","duration":"02:29:45","url":"/play/18940748.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjgvNDQzZjlhOTQwY2ViZjVlNTc0MDExNjMzMzUzNzk2NWMuanBn.cache","vod_id":19054861,"title":"Isang nakakatawang komento ang ibinigay ng nakatatandang kapatid sa kanyang ate na hindi mahusay magdiwang ng mga pista opisyal! Ang malalaking suso ng ate ay talagang sulit na panoorin! Raw sex sa loob ng maikling manggas na uniporme ng marino! H-cup, 97cm, Yu Tan. Hindi kilalang aktres na si CHRV207","lastmod":"2025-09-27","duration":"02:32:13","url":"/play/19054861.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGE3Yzg3MzdiNmU3YjM3MmI1YTJmMWY4ZmFlOTBjNjcuanBn.cache","vod_id":18964174,"title":"BBAN-407 Isang dalisay at magandang babae mula sa kanayunan, na nababagot, ang naglabas ng kanyang matagal nang pinipigilang sekswal na pagnanasa at inilubog ang sarili sa isang pawisang sesyon ng pagtatalik ng mga tomboy - Hanakotone, Tachibana Hinano","lastmod":"2025-12-14","duration":"02:00:38","url":"/play/18964174.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjllMzFkNDg5YTNjMjdjNzZkOTNmYjA3MmZlZjBhYjAuanBn.cache","vod_id":18978166,"title":"BAZX-366 Agarang Pakikipagtalik Anumang Oras, Kahit Saan! Isang Seleksyon ng Magagandang Serbisyo ng SP para sa mga Kasambahay (4 na Oras)","lastmod":"2025-03-23","duration":"03:59:52","url":"/play/18978166.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzA5OTYyYWE4MWM4ZWFkYTFiYTE1MWRlMDBiM2JiODYuanBn.cache","vod_id":19001469,"title":"JUY-597 Isang babaeng may asawa na nahuhumaling sa pagdila sa ari ng lalaki na gustong-gusto ang tuwid at malalaking ari ng mga miyembro ng rugby club sa dormitoryo ng mga estudyante. (Miura Eriko)","lastmod":"2025-03-23","duration":"02:26:55","url":"/play/19001469.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWJkMTcxMzAxZjdmNmQ4NDA1ZDhmZGQ3MTM1Yjk5MTMuanBn.cache","vod_id":18980592,"title":"[Bersyong Hindi Pinutol] NIMA-023 Mating House: Live-Action! Sa bahay ko, kung saan umaalingawngaw ang mga ungol ng mga halimaw, ako lang ang hindi nakaka-enjoy sa pakikipagtalik...Mengami Takarada","lastmod":"2025-12-14","duration":"02:27:13","url":"/play/18980592.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvY2M0YmIxMzgyZWY2OTJjMDU4MjE5YThmYWQxNzMyMGQuanBn.cache","vod_id":19167929,"title":"Mainit na babaeng transgender na may S-class na matinding lesbian sex. Mainit na babaeng may malaking dibdib na may S-class na cumshot. Mga estetika nina Ichinose Ram, Tsubaki Rika, at Senarumina Pitters.","lastmod":"2026-07-12","duration":"02:24:24","url":"/play/19167929.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDJlYzhmNjQwMDdkMWQ5N2NkNDlmNGVlZGU4MmVhYWEuanBn.cache","vod_id":18982944,"title":"Nanganganib ang IPZ-830 Horikita! \"Ano? Dito mismo, sa lugar na tulad nito?!\" 180 minuto ng labis na kahiya-hiyang pagtatalik. Hindi inaasahang matinding pagtatalik!","lastmod":"2025-12-14","duration":"02:58:46","url":"/play/18982944.html"}]},
videoTitle: 'MDTM601 Pinakamahusay na Aktres sa Costume Sex sa Loob ng 4 na Oras.',
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=/`;
}
};
}