diff --git a/app/share/[mid]/page.js b/app/share/[mid]/page.js index 1d1440e..51cda38 100644 --- a/app/share/[mid]/page.js +++ b/app/share/[mid]/page.js @@ -2,24 +2,41 @@ import React, { useEffect, useState } from "react"; import { Divider, Toast } from "antd-mobile"; -import { useRouter, useParams, useSearchParams } from "next/navigation"; +import { useRouter, useParams } from "next/navigation"; import clipboard from "copy-to-clipboard"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faAngleLeft, faAngleRight } from "@fortawesome/free-solid-svg-icons"; import { getStreamerInfo } from "@/api/space"; import requireAPI from "@/utils/requireAPI"; -export default function ShareSpace({ data }) { +export default function ShareSpace() { const router = useRouter(); const { mid } = useParams(); const webUrl = process.env.NEXT_PUBLIC_WEB_URL; const [streamerInfo, setStreamerInfo] = useState(null); const [shareWebUrl, setShareWebUrl] = useState("https://tiefen.fun"); + + 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(() => { getStreamerInfo(Number(mid)).then((res) => { setStreamerInfo(res); }); + function getRandomUrl(urls) { + return urls[Math.floor(Math.random() * urls.length)]; + } + const getShareWebUrl = async () => { try { const data = await requireAPI("POST", "/api/config/cold_config", { @@ -31,7 +48,8 @@ export default function ShareSpace({ data }) { }); return; } - setShareWebUrl(data.data.share_redirect_url); + const randomUrl = getRandomUrl(data.data.share_redirect_urls); + setShareWebUrl(randomUrl); } catch (error) { console.error(error); } @@ -58,12 +76,13 @@ export default function ShareSpace({ data }) { //复制邀请链接 const copyShareUrl = () => { - const shareCode = `${shareWebUrl}/zone/${streamerInfo?.streamer_ext?.user_id}`; + const randomStr = generateRandomString(); + const shareCode = `${shareWebUrl}/zone/${streamerInfo?.streamer_ext?.user_id}/${randomStr}`; copy(shareCode); }; return ( -