From c5dbb6794c7d84d31a24414820e0f4f91a1d8c6b Mon Sep 17 00:00:00 2001 From: yezian Date: Fri, 13 Dec 2024 15:59:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E4=BA=AB=E9=93=BE=E6=8E=A5=E9=98=B2?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=B0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/zone/share/[user_id]/page.jsx | 42 +++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/app/zone/share/[user_id]/page.jsx b/app/zone/share/[user_id]/page.jsx index 733e8b6..ffce941 100644 --- a/app/zone/share/[user_id]/page.jsx +++ b/app/zone/share/[user_id]/page.jsx @@ -10,8 +10,26 @@ export default function Share({ params }) { //获取页面数据、生成二维码 const [data, setData] = useState({}); const [qrcodeUrl, setQrcodeUrl] = useState(""); + const [shareWebUrl, setShareWebUrl] = useState("https://tiefen.fun"); const [isFetching, setIsFetching] = useState(true); + + function generateRandomString(length = 10) { + const characters = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + let result = ""; + for (let i = 0; i < length; i++) { + result += characters.charAt( + Math.floor(Math.random() * characters.length) + ); + } + return result; + } + useEffect(() => { + function getRandomUrl(urls) { + return urls[Math.floor(Math.random() * urls.length)]; + } + const getData = async () => { try { const base = baseRequest(); @@ -40,9 +58,28 @@ export default function Share({ params }) { return; } setData(detailData.data.streamer_ext); + + const urlsResponse = await fetch(`/api/config/cold_config`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ ...base }), + }); + const urlsData = await urlsResponse.json(); + if (urlsData.ret === -1) { + Toast.show({ + content: urlsData.msg, + }); + return; + } + const randomUrl = getRandomUrl(urlsData.data.share_redirect_urls); + setShareWebUrl(randomUrl); + const randomStr = generateRandomString(); + var QRCode = require("qrcode"); QRCode.toDataURL( - `https://tiefen.fun/zone/${params.user_id}`, + `${randomUrl}/zone/${params.user_id}/${randomStr}`, function (err, url) { setQrcodeUrl(url); } @@ -153,10 +190,11 @@ export default function Share({ params }) { //复制链接 const copyUrl = () => { + const randomStr = generateRandomString(); window.ReactNativeWebView.postMessage( JSON.stringify({ type: "COPY_URL", - data: `https://tiefen.fun/zone/${params.user_id}`, + data: `${shareWebUrl}/zone/${params.user_id}/${randomStr}`, }) ); };