Jiang Shuying, with her perfect figure, appears on camera, wearing stockings and showing off her wet and erotic vulva to her male admirers. She makes lewd noises and expresses herself in a very seductive manner, fondling her breasts and playing with her cunt using props.
The lady next to me is very beautiful and has a sexy figure, so I tried to woo her, and she was even sexier than I imagined…!! 4 hours Mud Stick Cat - Emaniel","lastmod":"2026-07-11","duration":"04:00:33","url":"/play/19164085.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmY2ZDgzZWRjNmM4ZjJjNWNiMGIxYTIxMDI3MDgwMzguanBn.cache","vod_id":18990371,"title":"JKSR-436 Target-Limited Pickup: Sexy, curvy buttocks and beautiful legs wrapped in a black veil – incredibly exciting! Take off your steaming hot panties and engage in 4 hours of primal sex (incest) with 16 amateur wives.","lastmod":"2025-03-23","duration":"04:00:19","url":"/play/18990371.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTYxODNlNDcwNzY5YjI4M2I4NWFjMTdhY2E2YWM5MjkuanBn.cache","vod_id":18942689,"title":"[Senior Nursing Student] A pretty girl in sheer stockings and nude stockings masturbates seductively; close-up shots of her vulva being rubbed with props are very alluring.","lastmod":"2025-03-22","duration":"02:26:26","url":"/play/18942689.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvMmQ2M2RmNGEwZjk1MWNkNzJiNTE1ODlkM2VmZDRiYzYuanBn.cache","vod_id":19064953,"title":"A slender, white-stockinged woman with large breasts passionately fucks her boyfriend.","lastmod":"2025-12-14","duration":"03:04:56","url":"/play/19064953.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvMWYxMGY3YTc0ZmM2NzIyYjYxZTVjM2ZlZGVjMTJjNjkuanBn.cache","vod_id":19066235,"title":"A burly black man had sex with a girl, his face fully visible throughout the entire passionate 4P encounter.","lastmod":"2025-12-14","duration":"01:04:00","url":"/play/19066235.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTRjNzUxOTY0OTM0OWZkNzlhYzczYjc0M2UzODJiODUuanBn.cache","vod_id":18961295,"title":"Me, the Perfect Lady 1","lastmod":"2025-03-22","duration":"00:18:59","url":"/play/18961295.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODE0ZmQ4YWVhNDg5YWMwODI3YjQxOTM0MDQxMjkyOTkuanBn.cache","vod_id":18982999,"title":"Beautiful sisters! A happy older brother's passionate threesome! They take turns fucking each other with their butts up, in a cowgirl position with open crotch and stockings, fucking until they cum, continuous output is incredibly pleasurable.","lastmod":"2025-03-23","duration":"01:20:08","url":"/play/18982999.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MTQvZjYzMjFhMjRkMjZiMzQwOGE1NGM1NGJlZWI5MDY5MGYuanBn.cache","vod_id":19042831,"title":"DASS631 I love older men! Only looking for men over 40! If you can resist the allure of this doll-like figure, you can experience authentic sex! 5","lastmod":"2025-07-13","duration":"02:22:00","url":"/play/19042831.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvM2IwNWYxMjdiMTlhZjk2NDUwNjc4NmUxNmM1MjEyY2IuanBn.cache","vod_id":19138856,"title":"In this exclusive, private group, most members (43) are shown on their faces.","lastmod":"2026-01-17","duration":"08:09","url":"/play/19138856.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTBhYjdkNzUwY2NkNGNmOTc5MGNhYTNlOTBhODE1NzcuanBn.cache","vod_id":19152955,"title":"Baby face, big breasts, black stockings, sexy lingerie, hot dance seduction","lastmod":"2026-04-12","duration":"22:15","url":"/play/19152955.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjkxYTViZTMzODQ0ZGY1OGUxOGJmNzk1YWU1ZTMwOGIuanBn.cache","vod_id":18998964,"title":"Baidu search results showed a young and beautiful flight attendant and her boyfriend having sex in front of a mirror while filming themselves, and then using a vibrator on the bed while she was being penetrated, shouting: \"Fuck me harder, fuck my little slut!\"","lastmod":"2025-03-23","duration":"05:10","url":"/play/18998964.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWY3ZDRhMzNhMjBkMGFjMDgwMjAzYjk5MmI2ZmE1MGEuanBn.cache","vod_id":18939024,"title":"[High-end Resources] The most beautiful live streamer on Huajiao, [77 Little Ancestor], has been exposed in a large-scale leak, showing her face and vagina.","lastmod":"2025-12-14","duration":"00:10:16","url":"/play/18939024.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNGRlYzE3OGQzZjliYzQ4ZTEwMTRjZmU5YzVmYTQ4ODYuanBn.cache","vod_id":19135335,"title":"Long legs, stockings, slender figure, seductive voice, flirtatious interaction, close-up shots of masturbation with props.","lastmod":"2025-12-26","duration":"01:29:13","url":"/play/19135335.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmIzOTEyN2Y2ODYwYjMzNzU3YTdiNzc0N2U2YjQ2NWUuanBn.cache","vod_id":18941188,"title":"Twitter user \"fss\" posted a collection of videos featuring a model-like figure, showing her naked body while walking at night to pick up takeout, crawling on her dog, urinating, and masturbating. She was repeatedly seen by passersby but remained calm. (195 photos included)","lastmod":"2025-03-22","duration":"00:29:54","url":"/play/18941188.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWMzODc2YjBhZjhjYTE0MDJhOWUzYTNkN2UzMjQ1MWQuanBn.cache","vod_id":18978466,"title":"Pacopacomama Pacopacomama 070623_873 Bring your sex chair! Sexy girl Hinata Himori will provide you with shower gel service.","lastmod":"2025-12-14","duration":"01:01:24","url":"/play/18978466.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzY0YjFlZWQ4MzA4ODFlOThmYzY1ZDc2NzEwNTk0MjUuanBn.cache","vod_id":18968077,"title":"This mature woman is incredibly sexy; her large, sagging breasts and nipples are huge. She lets the guy lick her anus and nipples, then gives her oral sex on his big cock. She lets him suck her breasts and lick her pussy without a condom, then has sex with her and cums inside her.","lastmod":"2025-03-23","duration":"00:59:17","url":"/play/18968077.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmZmMGU1MGYwODlkNzE1OTgzZmE5MDEzZTMwMGZjNjkuanBn.cache","vod_id":18929286,"title":"A short-haired, attractive young woman uses props to masturbate while wearing high heels and sitting on a chair. A vibrating egg is inserted into her vagina, and she twists her body seductively. Don't miss it if you like it!","lastmod":"2025-12-14","duration":"00:56:23","url":"/play/18929286.html"}]},
videoTitle: 'Jiang Shuying, with her perfect figure, appears on camera, wearing stockings and showing off her wet and erotic vulva to her male admirers. She makes lewd noises and expresses herself in a very seductive manner, fondling her breasts and playing with her cunt using props.',
language: 'en',
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('Link copied!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Link copied!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Link copied!');
}
}
},
// 切换布局
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=/`;
}
};
}