Ang Erotikong Silid ng Karaoke ni Shen Nana EP6 - Unang Karanasan ng Estudyanteng Babae na si Shen Nana sa isang Vibrator Karaoke","lastmod":"2026-07-11","duration":"06:22","url":"/play/19165412.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODRiMTM5ZGJiM2U4OGE3MDg5NjI4MDdiMmEyYTljMTguanBn.cache","vod_id":18995320,"title":"KAWD-949-CN Unang Karanasan sa Orgy! Patuloy na Orgasm at Gusto Pa Rin ng 20 Sunod-sunod na Ari - Sakura Moeko","lastmod":"2025-12-14","duration":"01:47:11","url":"/play/18995320.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTY1OTY1YmM4OWYxYTVmYTU1OTllNWQxMjU0YzliZTAuanBn.cache","vod_id":19001794,"title":"MEYD-467 Kahit na ina siya ng dalawa, ang balingkinitan pa rin niya! Itinago ito sa kanyang asawa, nag-debut siya sa industriya ng AV para maghanap ng excitement sa kanyang pang-araw-araw na buhay!! Mayumi Rei","lastmod":"2025-03-23","duration":"01:57:23","url":"/play/19001794.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvN2M3MGNmZmEwNDA2NjBjYTY4NTZkOGQ4NjEwNzNhNjYuanBn.cache","vod_id":19162874,"title":"Napakadelikadong pornograpikong pelikula! Isang babaeng nalugmok sa lupa na pinagbibidahan nina Kohaku Matsumine, Airi Sato, at Homura Mizuki. MERCURY","lastmod":"2026-07-11","duration":"05:00:11","url":"/play/19162874.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDhiMDZhZTU5ZDViYWI0Nzg3ZmY5ZjhhOTA2ZWQ0OWYuanBn.cache","vod_id":18962081,"title":"✿Diyosa ng mga Kilalang Tao sa Internet ✿Super Sikat na Kagandahan ng Busty ▌Xiao Tao Jiang ▌Spring Passion Pribadong Hot Spring - Mas Mainit Pa Kaysa sa Hot Spring, Ari sa Loob, Mainit na Semen - Inirerekomenda ang Super Kasiya-siyang Karanasan","lastmod":"2025-03-22","duration":"00:17:15","url":"/play/18962081.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZmIxYjNhYzA0ZWE0NmI5MmM4Nzc4YmQwNTU0YzZmMDYuanBn.cache","vod_id":19146647,"title":"Ang babaeng nadroga at ginahasa, isang magandang babae na may malaking suso, ay diumano'y isang figure skater na may napakagandang katawan; mahusay siya sa maraming paraan at ilang beses na lumutang sa tubig.","lastmod":"2026-03-05","duration":"49:17","url":"/play/19146647.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjMvN2JmYjRiZWI1MGVjNWNlOTM0ZWUyODVkZTcyMDRiMDguanBn.cache","vod_id":19043978,"title":"AI-Dilraba-Matapos ang isang sapilitang at pinipigilang karanasan sa pakikipagtalik, hindi niya napigilan si 01","lastmod":"2025-07-22","duration":"10:42","url":"/play/19043978.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTkvMzIxNmZhMGFjY2JjMzZhMTk3MTVkNDllNDVkMzc3YmQuanBn.cache","vod_id":19058309,"title":"Malaking puwitan na nakayuko, pinupukpok ang bola, pinipiga ang semilya na mataas sa protina mula sa ehersisyo! 11 beses na semilya at semilya ang ibinulalas sa ari. Ai Sayama WAAA415","lastmod":"2025-10-18","duration":"02:26:40","url":"/play/19058309.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjAvMDhkNzljYzQ1YmI0ZDhmOWUxODQzNGVmZGM3NzNkMDcuanBn.cache","vod_id":19063610,"title":"Ang 20-taong-gulang na si Linlin, isang nangungunang estudyante at labis na introvert na estudyante sa kolehiyo, ay medyo mahiyain at tahimik noong una niyang karanasan sa pakikipagtalik sa isang estranghero.","lastmod":"2025-12-14","duration":"43:44","url":"/play/19063610.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjMzOTA5ZjE2MDIwMDE3NmM0YTliNDk5NGRiZjY2YjMuanBn.cache","vod_id":19016400,"title":"SIRO3831 [Unang Pagbaril] Online na Aplikasyon para sa AV → Karanasan sa Pagbaril sa AV 997 Isa ba siyang tsundere o isang misteryosong babae? Kahit ang isang matamlay na amateur na babae ay natutuwa kapag nilalaro ang kanyang clitoris. Bumulwak ang malaswang likido mula sa kanyang inahit na vulva.","lastmod":"2025-03-24","duration":"50:31","url":"/play/19016400.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNTY3NDJjMGZhNWRkYmNkMzRhZDE5NTczMmE3ZGQ0ZjcuanBn.cache","vod_id":19138095,"title":"\"Ano, gagawin ba natin dito?\" Ang kanyang nakatagong kalokohan ay napakainit! Nabubunyag ang pribadong buhay ni Asano Kokoro! Sa tuwing may pagkakataon... Asano Kokoro SONE-905","lastmod":"2026-01-13","duration":"02:32:34","url":"/play/19138095.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzZlODA5OWYxMzc5MDNkYWFkYjQ3ZDI5ZDNkMTBkZTkuanBn.cache","vod_id":18984529,"title":"[Walang Sensor] ROE-222 Basang-basa at malinaw na katawan ng ina. Kaming dalawa lang ang nasa iisang bubong... isang gabing puno ng malakas na ulan. Mag-ina, basang-basa, at insestosong si Reiko Seo","lastmod":"2025-03-23","duration":"01:59:47","url":"/play/18984529.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTUvMDcxYzJjYmI2YzRiMmI3NGUzZGY1YmM4ZGE0MTIxNzkuanBn.cache","vod_id":19134242,"title":"BCP Ang matinding masokistang dula ng isang nakakasakal na nimpa: Yoshine Yuri Ai FPRE-190","lastmod":"2025-12-19","duration":"02:28:30","url":"/play/19134242.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmVmODM3OGVmYzBhNjZiNTY2NDEwOGVmMGNkNGRjMzMuanBn.cache","vod_id":18980613,"title":"IPZ-809 Pagsasanay sa Idolo: Pagsakal sa Leeg! Pag-ihi! Patuloy na Pamalo! Labis na Pagsasanay! Kana Momonogi","lastmod":"2025-12-14","duration":"02:36:40","url":"/play/18980613.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTM1MDcxZmQ5Y2UxYmEzNmU5MWM0NGJmYWFhMzYzYjguanBn.cache","vod_id":18939983,"title":"[Mga Subtitulo na Tsino] SCOP-644 Binu-bully ako sa isang masturbation club kung saan walang pinapayagang maghubad.","lastmod":"2025-03-22","duration":"02:29:33","url":"/play/18939983.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjhmYWQ0YzFjY2NkYjA3YWY4NWQwYjkzNjEwODZmOTcuanBn.cache","vod_id":19141295,"title":"Hangganan ng sekswal na pagnanasa! Hangganan ng pagkadismaya! Ang stress ay katumbas ng hangganan ng sekswal na pagnanasa. Isang babaeng nasa opisina ang napagod sa napakalaking ari ng kanyang walang kakayahang nasasakupan. Pagnanasa FOCS-286","lastmod":"2026-02-03","duration":"02:00:16","url":"/play/19141295.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjQvYjczYzQwOWE1YjE0MDhjNTY0MzQyZjQ5NGZhNGE4OTcuanBn.cache","vod_id":19064067,"title":"Unang Anibersaryo ni VV! Nagtapos ang Isang Buwan ng Pag-iwas! Isang Malaking Paglaya ng Sekswal na Pagnanasa Matapos Maabot ang Limitasyon ng Pagpipigil!! Ako, si Saito Honoka START_157","lastmod":"2025-12-14","duration":"02:20:59","url":"/play/19064067.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWU1ZDhmNGQwMWZiNzZmM2ExZWYzNzZjMTE2ODE4ZmQuanBn.cache","vod_id":19023381,"title":"IENF264C Amateur Pickup Artist: Unang Karanasan ng Walang-muwang na Babaeng Estudyante sa Kolehiyo sa mga Serbisyong Sekswal ng Babae 4 na Serbisyong Sekswal...","lastmod":"2025-03-24","duration":"02:31:09","url":"/play/19023381.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMDViOTc5NjQ3MWZiZmU1NTEwY2MyZjhlMjYxNmEzOWUuanBn.cache","vod_id":19163736,"title":"Unang Karanasan sa Pagpapalitan ng Asawa: Kapana-panabik na Pagsasanay at Pakikipagtalik sa mga Asawa","lastmod":"2026-07-11","duration":"13:39","url":"/play/19163736.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MDYvMzc5NGRlMDU5ZWQ0MTk4MjMxYzYxNGM0NjNhZTg3NDkuanBn.cache","vod_id":19032276,"title":"107HSDAM-003 Sinuri namin ang mga gawi sa paghalik ng mga tao sa kalye... at natuklasan naming mas malalim ito kaysa sa aming inaakala, na sumasakop sa buong katawan 6","lastmod":"2025-05-06","duration":"44:15","url":"/play/19032276.html"}]},
videoTitle: 'Mainit na Espesyal sa Thanksgiving sa Tokyo! 3 Pelikula na Magkasunod #20! Isasama Ka Namin sa Isang Karanasan ng Lahat ng Extreme Sports!',
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=/`;
}
};
}