Bilang tagapamahala ng isang restawran ng pamilya, naakit ako ng malaswang tukso ng isang batang babaeng gumagawa ng demonyo at nahumaling sa pakikipagtalik nang walang proteksyon... DVAJ-671-C","lastmod":"2026-07-11","duration":"02:09:47","url":"/play/19165711.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzYxYzVjYmVjOTI3MjAzZTg5OTk5Zjk2OTE0ODI3YzMuanBn.cache","vod_id":19012476,"title":"Al—Inaakit ni Jennifer Connelly ang kanyang amo","lastmod":"2025-03-24","duration":"13:29","url":"/play/19012476.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTkvNmMwZTM2NTVkMDdlYWFmMjk0ODYyNjQ3ODMzMTAyZGQuanBn.cache","vod_id":19058233,"title":"[Tsina] Sinisipsip ng mabait kong kapatid ang ari ko.","lastmod":"2025-10-18","duration":"13:33","url":"/play/19058233.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTU1N2E0ZmI0OTU2Yjk1YWE3NTk4MjM2ZWNhNmNhNGQuanBn.cache","vod_id":19007785,"title":"Ang paghabol ni KAWD962 sa isang babaeng estudyante sa kolehiyo na may walang proteksyong ari, ang unang beses na na-penetrate at kinantot, isang kumpletong rekord ni Nana.","lastmod":"2025-03-24","duration":"02:30:59","url":"/play/19007785.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMDYvZjQ1Mjg5ZDE4NGNhMzZkYWE5YzQ2ZjRlMjg4NTA4ZDYuanBn.cache","vod_id":19056373,"title":"Hinahanap-hanap ng malaswang asawa ni Tianmei0063 ang aking ari. (Paglaya sa Araw ng Bagong Taon, Jiang Youyi tuwing gabi...)","lastmod":"2025-10-05","duration":"19:35","url":"/play/19056373.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZThiY2ZlMGVmOWFjZmU2ZTFhZGYzYjE5YjE2YmRmZTAuanBn.cache","vod_id":19001807,"title":"Isang kaakit-akit na babae na may kambal na ponytail at malalaking suso ang nakipagtalik nang doble, kabilang ang oral sex, doggy style, at nakakapangilabot na masturbesyon gamit ang isang nakakapangilabot na massager sa kanyang seksing malaking puwet. Nakakaakit, huwag palampasin!","lastmod":"2025-03-23","duration":"01:31:44","url":"/play/19001807.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTVmNWJmYzNmMGZhOTkxZDYxNzliMTQ4OWZjM2IzNzAuanBn.cache","vod_id":18954946,"title":"[Bersyong Walang Putol] CAWD-377 Lubos na nabighani sa tuksong ibinulong sa aking tainga ng isang babaeng estudyante, bilang kanyang homeroom teacher, nauwi ako sa pakikipagtalik sa kanya na may bawal na cream pie pagkatapos ng klase sa isang love hotel at sa library... Yui Amane","lastmod":"2025-12-14","duration":"01:58:39","url":"/play/18954946.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGI3YTk1YjExNzFhMmRiOWE4ODk5ZTY1M2FhOTNkNDUuanBn.cache","vod_id":18959270,"title":"Ang malaking diyosa na si Su Man at ang misteryosong tycoon ay mayroong perpektong pampublikong pagpapakita ng kanilang sekswal na engkwentro sa isang silid ng hotel.","lastmod":"2025-03-22","duration":"00:31:06","url":"/play/18959270.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGEzMDlkN2ZmMmU2OGJiNWMzZmI4MjQ1ZjA1Mjc1MTEuanBn.cache","vod_id":19008170,"title":"[Pink Pineapple] Pagbibilang ng Tukso Tomo 4 Kagami AKIRA Kabanata 1","lastmod":"2025-03-24","duration":"28:31","url":"/play/19008170.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTM1ZTEzYzc4NjcwYjkwNDFjZWM2Yzk2ZWJhZDhhYzEuanBn.cache","vod_id":18977729,"title":"✿ Sobrang Sikat na Diyosa ✿ Sobrang Sikat na Babaeng May Halagang Halaga na si Ru, Nagbabalik para sa Offline na Pakikipagtalik ▌Little Strawberry ▌Lady on Top na may Manipis na Baywang at Sumasabog na Tulak, Kinurot ng Kuya ang Kanyang Anus, Sobrang Kulay Rosas ang Kanyang Puwerta at Pinipiga ang Kanyang Baywang para sa Katas, Tunay na Kamangha-mangha","lastmod":"2025-12-14","duration":"00:35:47","url":"/play/18977729.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjIwZjU0NGE2OTc4NTA4ODQ1ZDZjNGE4M2ViMDFiMzguanBn.cache","vod_id":18927289,"title":"Ang platform na \"Little Cute\" (dating \"Kawaii\") ay nagtatampok ng isang mahalagang, mature na babaeng anchor na nagngangalang Benboba1029 na nakikibahagi sa isang bayad na live stream kung saan ibinababa niya ang kanyang panloob at madamdaming nagsasalsal, na lubos na kaakit-akit.","lastmod":"2025-12-14","duration":"00:53:52","url":"/play/18927289.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMTI2ZDkyMTE5NzQ4N2FiOTQwY2Q2Y2MyYjA4ZTJlY2QuanBn.cache","vod_id":19139546,"title":"Babaeng mataas ang takong, malaki ang dibdib, at malaswang babae na may mapang-akit na boses at mapang-akit na pananalita, na nakikipaglandian sa isang dildo at pinapa-sex.","lastmod":"2026-01-21","duration":"22:26","url":"/play/19139546.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjkvOWUxMTY0YzBiNjk3MTRhODkyYmE1MWU3MjdhOTdhZDkuanBn.cache","vod_id":19049194,"title":"[Mga Paglabas ng Sikat na Tao sa Internet] Magkaibang Hitsura ng mga Bituing Koreano: Nagsasalsal ang mga Nangungunang Maganda","lastmod":"2025-08-28","duration":"21:17","url":"/play/19049194.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvZDc3YzY5NjZhNTU1M2E1NDVhZTk1NWYwMjM0NjEyYzUuanBn.cache","vod_id":19168202,"title":"Ang teksto ay tila isang magulong koleksyon ng mga parirala at keyword na may kaugnayan sa isang malaswa at malaswang tindahan ng meryenda, posibleng mula sa isang nobelang Tsino o isang pelikulang pang-adulto. Ang isang direktang pagsasalin ay hindi magiging makabuluhan kung walang konteksto. Kabilang dito ang mga pariralang tulad ng \"pag-akit sa ari ng isang marangyang kostumer papunta sa kanyang malaki at kaakit-akit na puwitan,\" \"paglalantad ng kanyang mga utong,\" \"isang napaka-bulgar na ginang sa tindahan ng meryenda,\" \"paghahatid ng unan na parang multo pagkatapos umalis sa trabaho,\" at \"Mina Kitano.\" Ang mas tumpak na pagsasalin ay mangangailangan ng pag-unawa sa","lastmod":"2026-07-14","duration":"03:08:11","url":"/play/19168202.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTQvZTBmNWUyNzlkNmY0YzEzNDI4N2NhNzdkZDg1NzRiNzUuanBn.cache","vod_id":19057796,"title":"Kusang-loob niyang hinubad ang pantalon ng kanyang kapatid, binigyan ito ng oral sex, at sinalsal ito hanggang sa lumabas ang bulalas nito sa kanyang bibig. Gusto niyang kainin ang ari nito araw-araw.","lastmod":"2025-10-13","duration":"15:40","url":"/play/19057796.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzk3NWJkZjBmMDk2ZWFkZWI4MDcxNDIxMTVmYmQ1NzYuanBn.cache","vod_id":19149071,"title":"[4K] \"Huwag mong sabihin...\" Halos mabaliw ako sa bawal na tukso ng aking madrasta. Ang katwiran ay nilalamon ng di-mapigilang pagnanasa; ang aking mundo ay gumuguho. Tokita Kozue MADV-615","lastmod":"2026-03-19","duration":"01:46:18","url":"/play/19149071.html"}]},
videoTitle: 'Isang busty na babaeng South Korean anchor ang gumagamit ng dildo para magsagawa ng foot fetish seduction!',
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=/`;
}
};
}