Li Ge Tan Hua 3000-level Big Circle Outerwear 02-taong-gulang na Payat na Part-time na Babaeng Kolehiyo. Atubili ngunit malugod na tinatanggap, basa at masikip, siya ay kinantot hanggang sa ma-orgasm.Li Ge Tan Hua 3000-level Big Circle Outerwear 02-taong-gulang na Payat na Part-time na Babaeng Kolehiyo. Atubili ngunit malugod na tinatanggap, basa at masikip, siya ay kinantot hanggang sa ma-orgasm.","lastmod":"2026-07-11","duration":"","url":"/play/19207339.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9zYnp5dHBpbWc0LmNvbTozNTE5L3VwbG9hZC92b2QvMjAyNjAyMjctMS85ZDQ5OGU1Y2Q1ZTIwNjQ5ZWU4NWU1NDc3NTc1MjdlYy5qcGc=.cache","vod_id":19183262,"title":"Isang matataas na opisyal na escort na nakasuot ng mahabang bestida at itim na bota ang umupo sa kanya, nagtanggal ng butones ng kanyang damit, hinawakan ang kanyang puwitan, nagsagawa ng oral sex, at pagkatapos ay ipinasok siya sa ibabaw niya habang nakasakay sa kanya. Ang engkwentro ay inilarawan bilang masigla at matindi.","lastmod":"2026-02-27","duration":"0:35:19","url":"/play/19183262.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNzdjMDBmN2YyNjUwM2EwYjRmMzE0YTljNzY3ZjBiYzcuanBn.cache","vod_id":19199295,"title":"Sinamantala ng amo ng asawa ko ang kahinaan ko at pinilit akong isubo ang sarili ko sa loob niya.","lastmod":"2026-05-16","duration":"2:01:08","url":"/play/19199295.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTNjNjY4ODVmNGE1YTZmMTU4MzE0MjM1OTMwOThkODkuanBn.cache","vod_id":19036489,"title":"Si Mr. Kim, ang internet sensation na kilala sa kanyang husay sa prostitusyon, ay nakipagtalik kamakailan sa isang hotel kasama ang isang magandang Asiana Airlines flight attendant sa harap ng bay window ng isang silid na may walang kapantay na tanawin.","lastmod":"2025-03-26","duration":"0:19:27","url":"/play/19036489.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTUvNzk1Zjk2MWQzZGVhZjBiYTRlYmRmNDJlMzQ3OTZjZjYuanBn.cache","vod_id":19130779,"title":"Palaging inaatasang magtrabaho nang hatinggabi kasama ang isang nasa katanghaliang-gulang na tagapamahala ng tindahan. (Ito ay tumutukoy sa isang sekswal na gawain na may kinalaman sa NTR at pakikipagtalik.) Yagi Nana MIDV-188-C.","lastmod":"2025-04-15","duration":"1:59:59","url":"/play/19130779.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDIvMWJjOWNhOGIzZGJhYjRlNzI4ZWU5YTg5NWUyNDk0ZTMuanBn.cache","vod_id":19162023,"title":"Sinamantala ng amo ng aking asawa ang aking kahinaan at pinilit akong ilabas ang aking ilong sa loob niya. (Hindi kilalang aktor na si NASK_134)","lastmod":"2025-11-01","duration":"2:01:09","url":"/play/19162023.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTUvYjgyNDRhNWNlNjk1NmFhMDFiYzFkYmM1NDEyMjAxY2QuanBn.cache","vod_id":19154587,"title":"Ang serye ng mga pakikipagtalik sa hotel na \"Top Flower\" ay nagtatampok ng mga babaeng may matataas na marka na nakasuot ng itim na bestida, nakasisilaw na mga headlight, at masikip at kaakit-akit na mga ari.","lastmod":"2025-09-14","duration":"0:32:25","url":"/play/19154587.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzFlZjM2NjhhMDE0MzgwMjgwNzM4MWE4ZTdmOWE2OTAuanBn.cache","vod_id":19034855,"title":"Ginawa ni Mr. Rabbit, cosplay ng tagahanga ng One Piece RED","lastmod":"2025-03-26","duration":"0:30:40","url":"/play/19034855.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODY5ZjI3NzRkY2U5OTgwYzEzM2ZjZTYxNzIwNGY5YTYuanBn.cache","vod_id":19036420,"title":"Ang video, na pinamagatang \"Master Han's Extreme Sexual Encounters with a Teacher of Yoga na May Malambot na Dibdib, May Wasp-Waisted, at Kurba (4 na Buong Bersyon),\" ay nagtatampok ng isang guro ng yoga na inilarawan bilang \"Napakaganda, Napakasikip Niya.\"","lastmod":"2025-03-26","duration":"0:15:25","url":"/play/19036420.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmRhNjc1ZTU2Mzk2ODZkMDJhMzY2MGY2ZmRkMTM1YWYuanBn.cache","vod_id":19035462,"title":"Isang binata ang umupa ng isang escort nang gabing-gabi, at sila ay nagtalik nang paulit-ulit, oral sex, at penetration sa kama, kung saan ang escort ay gumagawa ng malalaswang ingay.","lastmod":"2025-03-26","duration":"0:25:56","url":"/play/19035462.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDA2NDg1YWQzNGM5MzZkY2VkY2QyYzc4MjBjZWNlZTUuanBn.cache","vod_id":19071483,"title":"Isang babaeng may magandang anyo at malaking dibdib na dinidilaan ang kanyang mga suso sa mapang-akit na paraan, ibinubuka ang kanyang mga binti para sa isang malapitang kuha ng kanyang bulkan, na masigla at kulay rosas.","lastmod":"2025-03-26","duration":"0:47:58","url":"/play/19071483.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjczNzU2ODYxOGM1MzMzZWE1ZmZjNDAxMmFhYTY4OGYuanBn.cache","vod_id":19078725,"title":"PPPE051 Isang busty part-time worker na sekswal na inabuso ng isang napakasamang store manager kapalit ng dagdag na sweldo ay sangkot sa isang late night NTR (Netorare) storyline na kinasasangkutan ni Yumi Shion.","lastmod":"2025-03-26","duration":"2:30:43","url":"/play/19078725.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDRjYjk4Y2FiMGFmMTQxM2M5YTU5ZGUyNjNiMjRkMzQuanBn.cache","vod_id":19111518,"title":"Si Mira, ang diyosa na may mamahaling hitsura, ay nagbibigay ng isang kahanga-hangang palabas sa silid ng ospital nang gabing-gabi. Pupunta siya sa kahit anong ospital kahit na bali ang buto. Ang ganap na awtomatikong aparato sa pag-upo at pag-juice ay naghahatid ng walang tigil na pag-squirt mula sa kanyang malambot na ari!","lastmod":"2025-03-26","duration":"1:23:51","url":"/play/19111518.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjkvNTMzMWUzOTA3ZDMzZDNhOGFmYzdjNjEyZDM3NDdhNDkuanBn.cache","vod_id":19205904,"title":"Isang malaki ang titi, walang buhay, mukhang kaibig-ibig na escort na may maputi at kaakit-akit na katawan, na sinusuportahan ng kanyang baywang, ang marahas na sinuksok mula sa likuran. Hinawakan niya ang kanyang mga suso at marahas na hinimas ang mga ito.","lastmod":"2026-07-02","duration":"","url":"/play/19205904.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDBjOTU4MGFlY2JjM2Q5NTE3ZTA0MWI0Mjc0YmFjYTUuanBn.cache","vod_id":19051861,"title":"[Detective Duck] Nakikipagtalik ang malaking lalaki na may taas na 173cm, inosenteng part-time escort sa isang hotel.","lastmod":"2025-03-26","duration":"0:52:58","url":"/play/19051861.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWJlNjM2YWZlMzYzZmMyMzJiZjdjNDgyNTc0MWU4YmYuanBn.cache","vod_id":19096523,"title":"5. Isang lalaking empleyado na nag-o-overtime nang gabi ang tinutukso ng kabit ng CEO at nanigas ang ari. Kailangan niyang maglabas ng ilong nang 10 beses bago siya matanggal sa trabaho!","lastmod":"2025-03-26","duration":"2:05:18","url":"/play/19096523.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZWQ0YzNhNWQ1MjA4ZGJkNDExYzVlMTg2M2UzOWRmYWUuanBn.cache","vod_id":19183634,"title":"Mga Piling Mataas na Tier na Diyosa na Escort - Pang-aakit sa Sofa, Madamdaming Itim na Medyas, Pumasok sa Likod","lastmod":"2026-03-01","duration":"0:50:59","url":"/play/19183634.html"}]},
videoTitle: '91 Si Mr. Chen, isang tahimik na escort na babae sa isang late-night club.',
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=/`;
}
};
}