热门精颀670","lastmod":"2026-07-11","duration":"12:34","url":"/play/19153621.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTBjNzA5YzRhOTZlNzc4OTRmOWZmMmVhZWIyMGFiMTcuanBn.cache","vod_id":19097254,"title":"Sa isang bahay-aliwan, isang malaswang babae ang dinala para sa isa't isa na paghipo at pagmasturbesyon. Pagkatapos ay nakipagtalik siya rito, ang kaakit-akit na katawan nito ay lumalaban sa kanyang mga binti, itinulak siya mula sa likuran habang umuugoy ang kanyang malaking puwit at dibdib.","lastmod":"2025-03-25","duration":"33:27","url":"/play/19097254.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWM0YWMzZTllODczYjg5N2IyMTIyY2MyMWM1NDA2N2MuanBn.cache","vod_id":18969619,"title":"Niyaya ko ang isang senior citizen na magturo sa akin noong weekend, inamin ko ang nararamdaman ko, at pagkatapos ay brutal na kinantot mula sa likuran at binigyan ng oral sex.","lastmod":"2025-03-19","duration":"18:03","url":"/play/18969619.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjZmNWU2YzUwNjlkNGNlMzdkMWI3MTczNDdiZTBlNjQuanBn.cache","vod_id":19146366,"title":"Isang babaeng nakasalamin, may sapat na gulang na nakasuot ng thong, maputi ang balat, ang walang awang pinasok mula sa likuran at sa wakas ay binigyan ng oral sex.","lastmod":"2026-04-28","duration":"36:29","url":"/play/19146366.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjgvNmNjYzUwZDgwODQ5NTNjOTU2ZjU5NzFjOWU3MmJlMjYuanBn.cache","vod_id":19118102,"title":"Pumasok ang matalik na kaibigan sa industriya ng seks upang makipaglaro sa bidang lalaki, nasangkot sa iba't ibang anyo ng rear-entry sex at prostitusyon.","lastmod":"2025-08-28","duration":"33:15","url":"/play/19118102.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYWI4ZTQ0Yjk5Y2RjZjZmODczM2E2ODRhYjQyZDA5MWEuanBn.cache","vod_id":18979617,"title":"Plot ng AV mula sa mainland China: Erotikong bitag ng isang lalaking palabiro, pagpasok sa likuran at pagtulak sa kwarto sa hagdan.","lastmod":"2025-03-19","duration":"21:21","url":"/play/18979617.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmYzNmRlOTQ0MjQ5NDUwNWE3OTkzYzNiMDMyMGY1OGYuanBn.cache","vod_id":19051029,"title":"JUQ-878 Ang insestosong buhay sekswal ng isang pinalawak na pamilya, na nagpapakasasa sa pakikipagtalik sa pangangalaga ng bata kasama ang walong minamahal na anak na lalaki.","lastmod":"2025-03-19","duration":"02:29:42","url":"/play/19051029.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjEvMDNhNWY1YmJiY2M0MzkyYTZjNThkZjdhNWM3MDFiZmIuanBn.cache","vod_id":19129579,"title":"Sa wakas ay dumating na ang pinakahihintay na unang beses ni STARS-848-C na maka-cream pie. Tinutukso, namimilipit, at nagmamakaawa siya para sa primal sex, ninanamnam ang mainit na semilya sa bawat posisyon, at naglalabas ng masayang sigaw.","lastmod":"2026-02-13","duration":"02:35:18","url":"/play/19129579.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMzA3M2QzMWMxMzhlNTNkNzJlODg0YmU1MWQ1OWM1OWUuanBn.cache","vod_id":18930840,"title":"Isang puting tigreng loli na nang-insesto sa kanyang kapatid - sinamantala ang kawalan ng kanyang mga magulang para makipagtalik sa kanyang kaakit-akit na kapatid sa ina (first-person perspective)","lastmod":"2025-03-19","duration":"11:13","url":"/play/18930840.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDYzMmQzN2E5ZDgwOTA5MjRmZjVkNmY0MGMzMzllNGMuanBn.cache","vod_id":18985173,"title":"— Li Ruiyuan, pakikipagtalik nang walang proteksyon, pagpasok sa likuran","lastmod":"2025-03-19","duration":"06:34","url":"/play/18985173.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODBhMzdkZDcxN2ZmYzg2OGQ0ZTllYzc3ZTkxYzFlNWYuanBn.cache","vod_id":19059219,"title":"390JNT-063 [Bagong Serye] Tampok sa SNS ang mga Babaeng \"Mantoko\", Nagpapakita sa Amin ng mga Sexy Selfie ni x (Ecchi)! Company","lastmod":"2025-03-19","duration":"01:33:41","url":"/play/19059219.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTkyZDY5ZTYzMGQxYTM4NDdiZGIxNTc3YzM5NzA5NmQuanBn.cache","vod_id":19066363,"title":"Mga piling nakakapukaw na eksena sa pakikipagtalik sa hagdanan (1).","lastmod":"2025-03-19","duration":"00:00:42","url":"/play/19066363.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzAwZGVhNmZhMzFiZTk2ZWQ1YjUyMjY3MzE3MDMyNTMuanBn.cache","vod_id":19142759,"title":"Bonus - Itinatampok na live stream ng insesto na relasyon ng mag-ina: mahalay na ina na marahas na naglalaro sa puke ng kanyang anak na babae.","lastmod":"2026-03-22","duration":"27:36","url":"/play/19142759.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDg5NDg1ODA1ZmRkNmY4NTIxZWEzYzQ2ODYxYWU3ZGMuanBn.cache","vod_id":19013661,"title":"Nakipagtalik ako sa girlfriend ko noong kolehiyo na malaki ang puwet.","lastmod":"2025-03-19","duration":"00:00:43","url":"/play/19013661.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvOGVhYTUwYjA5YWEzY2M3NDBjNzEwMjc2MzA3NjhkNzMuanBn.cache","vod_id":19149235,"title":"Isang matabang lalaki na palihim na kinukunan ang kanyang incestuous relationship sa kanyang pinsan ay nagpa-video sa isang kaibigan ng buong proseso, pati na ang diyalogo.","lastmod":"2026-05-29","duration":"01:21:29","url":"/play/19149235.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MzAvOWI5M2FiMjZhYjI0ZTNiOWJiODVhMTA2NGVlN2RlNjkuanBn.cache","vod_id":19102573,"title":"Isang mahalay na kapatid na babae ang nakipagtalik sa isang matandang sanitation worker sa kalye, binigyan siya ng isang piraso ng supot nito, at inuwi siya para makipagtalik sa kanya. Ang matandang babae, mahina at hindi matatag ang mga paa, ay sinaktan ng isang matandang lalaki sa kanyang cervix na, sa kabila ng kanyang pagtayo, ay masigla pa rin at aktibo sa pagpasok sa ari mula sa likuran.","lastmod":"2025-04-30","duration":"43:27","url":"/play/19102573.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMGQ0NGFjZjc5MzVmZTI2YWY3Zjc2NTk5OTc3NjQ1MTQuanBn.cache","vod_id":19093236,"title":"Nagmamakaawa ang maliit at malibog na babae para sa doggy style na penetration; umaapaw sa katas ang kanyang kulay rosas at puting puke.","lastmod":"2025-03-19","duration":"06:45","url":"/play/19093236.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYWJmYjJjZWU5ODhiOGMzNjM2NjNiYjAyMTBiYjVlMDIuanBn.cache","vod_id":19144458,"title":"Isang napakabatang babaeng Vietnamese ang sumali sa grupo, hinihimas ang kanyang puke sa bukana ng ari, hinihipo ang kanyang maliliit na suso, at itinulak siya papasok mula sa likuran. Ang kanyang ekspresyon ay nakaharap sa kamera habang kinakarera at pinipilipit ang kanyang balingkinitan na baywang.","lastmod":"2026-04-07","duration":"55:19","url":"/play/19144458.html"}]},
videoTitle: 'Napiling nilalaman: Pagpasok sa likuran, insesto, sa wakas ay nasakop ko na ang pinsan ko.',
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=/`;
}
};
}