{"version":3,"sources":["webpack://_N_E/./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack://_N_E/./lib/ugc-interact.ts","webpack://_N_E/./public/static/default2.png","webpack://_N_E/./public/static/icon-all@3x.png","webpack://_N_E/./node_modules/querystring/encode.js","webpack://_N_E/./pages-components/live/components/live-swiper.tsx","webpack://_N_E/./constants/global-styles/avatar-style.ts","webpack://_N_E/./pages-components/live/components/followees.tsx","webpack://_N_E/./pages-components/live/components/celebrity.tsx","webpack://_N_E/./pages-components/live/components/live-show.tsx","webpack://_N_E/./pages-components/live/home.tsx","webpack://_N_E/./public/static/icon-kol@3x.png","webpack://_N_E/./public/static/empty-pic@3x.png","webpack://_N_E/./components/footer-statement.tsx","webpack://_N_E/./node_modules/core-js/modules/es.array.sort.js","webpack://_N_E/./public/static/icon-local@3x.png","webpack://_N_E/./node_modules/querystring/decode.js","webpack://_N_E/./public/static/date@3x.png","webpack://_N_E/./node_modules/querystring/index.js","webpack://_N_E/./public/static/error-pic@3x.jpg"],"names":["_extends","Object","target","i","arguments","source","Autoplay","run","swiper","$activeSlideEl","delay","clearTimeout","nextTick","autoplayResult","start","stop","pause","speed","onVisibilityChange","document","getDocument","onTransitionEnd","e","name","params","autoplay","enabled","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","create","bindModuleMethods","running","paused","on","init","beforeTransitionStart","internal","sliderFirstMove","touchEnd","destroy","focus","user_id","to_user_id","fetch","method","headers","window","localStorage","getItem","body","serializeObject","then","res","data","message","is_following","Promise","resolve","reject","catch","err","console","log","digg","group_id","action","like_type","thread_id","digg_action","getUrl","err_no","err_tips","module","exports","stringifyPrimitive","v","isFinite","obj","sep","eq","undefined","keys","map","k","ks","encodeURIComponent","Array","isArray","join","SwiperCore","use","Navigation","default_img","require","LiveSwiper","props","children","setSlideIndex","imgArray","onShowSlide","onClickSlide","length","spaceBetween","navigation","nextEl","prevEl","loop","watchOverflow","simulateTouch","onSlideChangeTransitionStart","realIndex","index","key","src","onClick","transit","bannerData","useMemo","img_url","frameTimes","x","sendTeaCommEvent","rank","anchor_id","user_info","room_id","gid","AvatarStyle","empty_pic","error_pic","MineCard","popularity","title","cover_url","sub_tab","user_id_str","avatar","rel","href","formatNumber","user_name","Card","fans_num","subscribed","onFollow","globalState","useContext","GlobalStoreContext","state","openLogin","LoginStoreContext","avatar_class","className","avatar_styles","styles","my_user_id","get","Number","enter_method","follow","type","getMyFollowees","setMyfollowees","setFailed","setLoading","json","error","Followees","useState","failed","isLoading","tagNow","setTagNow","recfollowees","setRecfollowees","myfollowees","globalStore","userData","isLogin","success","recFollowee","find","push","reFollowee","pop","useEffect","data-type","dateImg","avatar_url","desc","status","isSubscribing","setIsSubscribing","as","timestampToWeek","timestamp","addDays","showYear","date","Date","d","getTime","getFullYear","getMonth","slice","getDate","timestampToMonth","getAllIDs","tag","a","templated_key","stringify","rank_list","getCelebrity","setInfo","ids","user_ids","id_str","Error","user_room_data_list","item","bottom_prefix","bottom_value","Celebrity","weeklyInfo","setWeeklyInfo","monthlyInfo","setMonthlyInfo","setTimestamp","weeklyDateTags","setWeeklyDateTags","monthlyDateTags","setMonthlyDateTags","fold","setFold","ref","useRef","rank_type","JSON","period_info","w","period_list","sort","b","m","fetchData","fetchCelebrityData","wi","mi","onFocus","onBlur","tabIndex","current","blur","dateTags","dateLength","renderCards","slidesPerView","slidesPerGroup","preventClicks","all_live_img","local_img","kol_img","live_black_gif","unique_id_str","share_info","image_list","share_url","user_count","url","BrandCard","brandCard","logo","brand_id","active","onClickTag","mapShownData","info","status_icon","card_content","LiveShow","liveData","brands","setBrands","brandNow","setBrandNow","shownData","setShownData","loadMoreCount","setLoadMoreCount","lastCount","setLastCount","lastMaxTime","setLastMaxTime","first","setFirst","cityName","useCityName","filterShownData","includes","behot_time","unshift","tt_from","category","refer","count","impression_info","page_id","motor_feed_extra_params","new_feed","feed_type","refresh_num","loadmore_num","from_page_id","live_sub_tab","max_behot_time","version_code","channel","device_platform","aid","live_brand_id","source_from","pc_city","isNaN","defaultParams","brand","Cookies","filter","bid","loading","loadMoreHandler","concat","end","getBannerData","allInfo","forEach","list","test","open_url","web_id","kols","ele","renderTitle","noData","loaded","style","defaultStyle","default_style","LiveBannerWrapper","slideIndex","fontSize","fontWeight","lineHeight","color","textAlign","width","LiveHome","setBannerData","setAllInfo","setLoaded","result","backgroundColor","bd","getInitialProps","_pageType","isNewVersion","req","_isNewVersion","Statement","year","$","aFunction","toObject","fails","arrayMethodIsStrict","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","proto","forced","comparefn","call","this","hasOwnProperty","prop","prototype","qs","options","regexp","split","maxKeys","len","kstr","vstr","replace","idx","indexOf","substr","decodeURIComponent","decode","parse","encode"],"mappings":"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","file":"static/chunks/518fef22eee4624ce26c79c9d923305984e363b0.651eb16a80ee25039003.js","sourcesContent":["function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends({}, Autoplay, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","import { useContext } from 'react'\nimport fetch from 'lib/decorated-fetch'\nimport serializeObject from '@arsenal/arsenal/modules/serializeObject'\nimport getUrl from 'lib/url'\nconst apiMap = {\n 1: '/ugc/video/v1/digg/digg/',\n 4: '/motor/discuss_ugc/digg/digg/',\n}\n\nconst methodMap = {\n 1: 'POST',\n 4: 'POST',\n}\n\ninterface FocusParams {\n user_id: number | string\n to_user_id: number | string\n}\n\ninterface DiggParams {\n user_id: number\n group_id: string\n action: 'digg' | 'cancel_digg'\n like_type?: 'digg_thread' | 'digg_ugc_video'\n}\n\ninterface DiggCommentParams {\n comment_id: string\n group_id: string\n}\n\nexport const focus = ({ user_id, to_user_id }: FocusParams) => {\n const params = {\n user_id,\n to_user_id,\n }\n return fetch('/motor/user/relation/like', {\n method: 'POST',\n headers: {\n 'tt-anti-token': window.localStorage.getItem('tt-anti-token') || '',\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: serializeObject(params),\n })\n .then(res => {\n const { message, is_following } = res.data\n if (message === 'success' && is_following) {\n return Promise.resolve()\n } else {\n return Promise.reject('关注失败')\n }\n })\n .catch(err => {\n console.log(err)\n return Promise.reject('关注失败')\n })\n}\n\nexport const digg = ({\n user_id,\n group_id,\n action,\n like_type = 'digg_thread',\n}: DiggParams) => {\n const params = {\n user_id,\n thread_id: group_id,\n digg_action: action,\n like_type,\n group_id,\n }\n let request = null\n request = fetch(getUrl(`/motor/community/digg_like`), {\n method: 'POST',\n headers: {\n 'tt-anti-token': window.localStorage.getItem('tt-anti-token') || '',\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: serializeObject(params),\n })\n return request\n .then(res => {\n const { err_no, err_tips } = res\n if (err_no) {\n return Promise.reject(err_tips)\n } else {\n return Promise.resolve()\n }\n })\n .catch(err => {\n console.log(err)\n return Promise.reject('点赞失败')\n })\n}\n\nexport const diggComment = ({ comment_id, group_id }: DiggCommentParams) => {\n const params = {\n aid: 36,\n user_id: 64194007718,\n comment_id,\n group_id,\n device_id: 69983831301,\n aggr_type: 0,\n action: 'digg',\n }\n return fetch('/browser/2/data/comment_action/', {\n method: 'POST',\n headers: {\n 'tt-anti-token': window.localStorage.getItem('tt-anti-token') || '',\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: serializeObject(params),\n })\n .then(res => {\n const { digg_count } = res.data\n if (digg_count === 1) {\n return Promise.resolve()\n } else {\n return Promise.reject('点赞失败')\n }\n })\n .catch(err => {\n console.log(err)\n return Promise.reject('点赞失败')\n })\n}\n","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/default2-eaaf7b50ccde96559461d1307e899aed.png\";","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/icon-all@3x-5cdb40da32e8582fce723f5f90a9c426.png\";","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","import React, { ReactNode, useEffect, useMemo, useRef, useState } from 'react'\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport SwiperCore, { Navigation, Autoplay } from 'swiper'\n\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport { IBannerList } from 'Pages/home/banner'\n\nSwiperCore.use([Navigation, Autoplay])\n\nexport interface SwiperProps {\n frameTimes: number\n imgArray?: string[]\n children?: ReactNode\n setSlideIndex?: (x: number) => void\n onShowSlide?: (x: number) => void\n onClickSlide?: (x: number) => void\n}\n\nconst default_img = require('static/default2.png')\nconst LiveSwiper = (props: SwiperProps) => {\n const {\n children,\n setSlideIndex,\n imgArray = [default_img],\n onShowSlide,\n onClickSlide,\n } = props\n\n return (\n <>\n {imgArray.length > 1 ? (\n 1}\n watchOverflow={true}\n simulateTouch={false}\n autoplay={{ disableOnInteraction: false, delay: 3000 }}\n onSlideChangeTransitionStart={swiper => {\n setSlideIndex && setSlideIndex(swiper.realIndex)\n onShowSlide && onShowSlide(swiper.realIndex)\n }}\n >\n {imgArray.map((e, index) => (\n \n {\n onClickSlide && onClickSlide(index)\n }}\n />\n \n ))}\n \n \n \n ) : (\n {\n onClickSlide && onClickSlide(0)\n }}\n />\n )}\n\n {children}\n\n \n \n )\n}\n\ninterface BannerData extends IBannerList {\n user_info?: {\n user_id?: string\n }\n}\n\nconst transit = (props: {\n bannerData: BannerData[]\n setSlideIndex: (x: number) => void\n}) => {\n const { bannerData, setSlideIndex } = props\n const imgArray = useMemo(() => bannerData.map(e => e.img_url), [bannerData])\n return (\n {\n setSlideIndex(x)\n sendTeaCommEvent('show_home_live_top_banner', {\n rank: x,\n anchor_id: bannerData[x]?.user_info?.user_id || '',\n room_id: bannerData[x]?.gid,\n })\n }}\n onClickSlide={(x: number) => {\n sendTeaCommEvent('click_home_live_top_banner', {\n rank: x,\n anchor_id: bannerData[x]?.user_info?.user_id || '',\n room_id: bannerData[x]?.gid,\n })\n }}\n />\n )\n}\n\nexport default transit\n","import css from 'styled-jsx/css'\n\nconst AvatarStyle = css.resolve`\n span::before,\n span::after {\n position: absolute;\n top: 50%;\n left: 50%;\n box-sizing: content-box;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n content: '';\n }\n span::before {\n z-index: 0;\n padding: 1px;\n border: 2px solid #ffcd32;\n animation: innerScale 0.4s infinite alternate;\n animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\n }\n\n span::after {\n padding: 7.5px;\n border: solid 1.5px #ffcd32;\n animation: outerScale 0.8s infinite normal,\n outerOpacity 0.8s infinite normal;\n animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1),\n cubic-bezier(0.4, 0, 0.6, 1);\n }\n\n span {\n border-radius: 50%;\n }\n @keyframes innerScale {\n 0% {\n padding: 1px;\n }\n\n 100% {\n padding: 2px;\n }\n }\n\n @keyframes outerScale {\n 0% {\n padding: 1.5px;\n }\n\n 100% {\n padding: 7.5px;\n }\n }\n\n @keyframes outerOpacity {\n 0% {\n border-color: rgba(255, 225, 0, 1);\n }\n\n 10% {\n border-color: rgba(255, 225, 0, 1);\n }\n\n 100% {\n border-color: rgba(255, 225, 0, 0);\n }\n }\n`\n\nexport default AvatarStyle\n","/* eslint-disable react/jsx-no-target-blank */\nimport React, { useState, useEffect, SyntheticEvent, useContext } from 'react'\nimport get from 'lodash/get'\nimport { focus } from 'lib/ugc-interact'\nimport { getLoginHref } from 'lib/get-login-href'\nimport { GlobalStoreContext } from 'Components/store'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport formatNumber from '@arsenal/arsenal/modules/formatNumber'\nimport getUrl from 'lib/url'\nimport Loading from 'Components/loading'\nimport AvatarStyle from 'Constants/global-styles/avatar-style'\nimport fetch from 'lib/decorated-fetch'\nimport { LoginStoreContext } from 'New/login/login-store'\nimport { ILoginCommonParams } from 'New/login/context/view-context'\nexport interface FolloweeData {\n room_id: string\n popularity: number\n title: string\n create_time: number\n finish_time: number\n cover_url: string\n user_info: {\n user_id_str: string\n user_name: string\n open_url: string\n avatar: string\n }\n fans_num: number\n subscribed?: boolean\n}\n\nconst empty_pic = require('static/empty-pic@3x.png')\nconst error_pic = require('static/error-pic@3x.jpg')\n\nfunction MineCard(props: FolloweeData) {\n const { popularity = 0, title, user_info, room_id, cover_url } = props\n return (\n {\n sendTeaCommEvent('click_home_live_follow_live_card', {\n sub_tab: '我的关注',\n anchor_id: user_info.user_id_str,\n room_id,\n })\n }}\n >\n \n
\n
\n 直播中\n \n {formatNumber(popularity)}人在看\n \n
\n
\n \n\n
\n \n \n {title}\n \n \n\n \n {\n sendTeaCommEvent('click_home_live_follow_profile', {\n sub_tab: '我的关注',\n user_id: user_info.user_id_str,\n })\n }}\n >\n \n {user_info.user_name}\n \n \n
\n \n \n )\n}\n\nconst follow = (\n subscribed: boolean,\n user_id_str: string,\n onFollow: (x: string, b: boolean) => void,\n globalState: { userData?: { user_id?: string } },\n openLogin: (commonParams: ILoginCommonParams) => void\n) => {\n if (subscribed) return\n sendTeaCommEvent('click_home_live_follow_user', {\n sub_tab: '推荐直播间',\n user_id: user_id_str,\n })\n const my_user_id = get(globalState, 'userData.user_id')\n if (!my_user_id) {\n openLogin({\n enter_method: 'follow',\n })\n return\n }\n // 先假设关注成功\n onFollow(user_id_str, true)\n focus({\n user_id: Number(my_user_id),\n to_user_id: Number(user_id_str),\n }).catch(() => {\n // 如果失败了,重置关注状态\n onFollow(user_id_str, false)\n })\n}\n\nfunction Card(props: {\n data: FolloweeData\n onFollow: (x: string, b: boolean) => void\n}) {\n const {\n data: { fans_num = 0, title, user_info, room_id, subscribed = false },\n onFollow,\n } = props\n const { state: globalState } = useContext(GlobalStoreContext)\n const { openLogin } = useContext(LoginStoreContext)\n const { className: avatar_class, styles: avatar_styles } = AvatarStyle\n return (\n
\n {\n sendTeaCommEvent('click_home_live_follow_profile', {\n sub_tab: '推荐直播间',\n user_id: user_info.user_id_str,\n })\n }}\n >\n \n \n \n 直播中\n \n \n
\n\n \n \n {title}\n \n \n \n \n {formatNumber(fans_num)}粉丝\n \n \n\n {\n follow(\n subscribed,\n user_info.user_id_str,\n onFollow,\n globalState,\n openLogin\n )\n }}\n type=\"button\"\n >\n {subscribed ? '已关注' : '关注'}\n \n {avatar_styles}\n \n \n )\n}\n\nconst getMyFollowees = (\n setMyfollowees: (data: FolloweeData[]) => void,\n setFailed: (b: boolean) => void,\n setLoading: (b: boolean) => void\n) => {\n // 获取我的关注\n setLoading(true)\n fetch(getUrl('/motor/m_api/pc_live_my_relation_list'))\n .then((json) => {\n setLoading(false)\n setFailed(false)\n if (!json.data || !(Array.isArray(json.data) && json.data.length > 0)) {\n setMyfollowees([])\n } else {\n setMyfollowees(json.data)\n }\n })\n .catch((e) => {\n setLoading(false)\n console.error('获取我的关注数据失败', e)\n setFailed(true)\n })\n}\n\nexport default function Followees() {\n const [failed, setFailed] = useState(false)\n const [isLoading, setLoading] = useState(false)\n const [tagNow, setTagNow] = useState<'mine' | 'recommend'>('mine')\n const [recfollowees, setRecfollowees] = useState([])\n const [myfollowees, setMyfollowees] = useState([])\n\n const { state: globalStore } = useContext(GlobalStoreContext)\n const { openLogin } = useContext(LoginStoreContext)\n const { userData } = globalStore\n\n const isLogin = !!(userData && userData.user_id)\n\n const onFollow = (user_id: string, success = true) => {\n if (success) {\n const recFollowee = recfollowees.find(\n (e) => e.user_info.user_id_str === user_id\n )\n recFollowee && (recFollowee.fans_num += 1)\n recFollowee && (recFollowee.subscribed = true)\n setRecfollowees([...recfollowees])\n\n if (!myfollowees.find((e) => e.user_info.user_id_str === user_id)) {\n recFollowee && myfollowees.push(recFollowee)\n setMyfollowees([...myfollowees])\n }\n } else {\n const reFollowee = recfollowees.find(\n (e) => e.user_info.user_id_str === user_id\n )\n reFollowee && (reFollowee.fans_num -= 1)\n reFollowee && (reFollowee.subscribed = false)\n setRecfollowees([...recfollowees])\n\n if (myfollowees.find((e) => e.user_info.user_id_str === user_id)) {\n myfollowees.pop()\n setMyfollowees([...myfollowees])\n }\n }\n }\n\n useEffect(() => {\n // 请求推荐直播间数据\n fetch(getUrl('/motor/m_api/pc_live_recommend'))\n .then((json) => {\n if (!json.data || !(Array.isArray(json.data) && json.data.length > 0)) {\n setRecfollowees([])\n } else {\n setRecfollowees(json.data)\n }\n })\n .catch((e) => {\n console.error('获取推荐直播间数据失败', e)\n })\n\n getMyFollowees(setMyfollowees, setFailed, setLoading)\n }, [])\n\n useEffect(() => {\n setTagNow('recommend')\n }, [recfollowees])\n\n return (\n <>\n
\n {recfollowees.length !== 0 && (\n {\n sendTeaCommEvent('click_home_live_follow_tab', {\n sub_tab: '推荐直播间',\n })\n setTagNow('recommend')\n }}\n >\n 推荐直播间\n \n )}\n\n {\n sendTeaCommEvent('click_home_live_follow_tab', {\n sub_tab: '我的关注',\n })\n setTagNow('mine')\n }}\n >\n 我的关注\n \n
\n
\n {tagNow === 'recommend' ? (\n recfollowees.map((e) => (\n \n ))\n ) : failed ? (\n
\n {isLoading ? (\n \n ) : (\n <>\n \n 网络异常,点击重试\n {\n getMyFollowees(setMyfollowees, setFailed, setLoading)\n }}\n >\n 重试\n \n \n )}\n
\n ) : isLogin ? (\n myfollowees.length > 0 ? (\n myfollowees.map((e) => )\n ) : (\n
\n \n \n 暂时没有主播在直播哦,\n
\n 换个时间再来吧~\n
\n
\n )\n ) : (\n
\n \n 暂无直播\n {\n openLogin({\n enter_method: 'other',\n })\n }}\n >\n 登录看主播\n \n
\n )}\n
\n\n \n \n )\n}\n","import React, { useState, useEffect, useRef, useContext } from 'react'\nimport Link from 'next/link'\nimport get from 'lodash/get'\nimport getUrl from 'lib/url'\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport SwiperCore, { Navigation } from 'swiper'\n\nSwiperCore.use([Navigation])\n\nimport { focus } from 'lib/ugc-interact'\nimport { getLoginHref } from 'lib/get-login-href'\nimport { GlobalStoreContext } from 'Components/store'\nimport Loading from 'Components/loading'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport AvatarStyle from 'Constants/global-styles/avatar-style'\nimport fetch from 'lib/decorated-fetch'\nimport groupBy from 'lib/groupBy'\nimport { stringify } from 'querystring'\nimport { LoginStoreContext } from 'New/login/login-store'\nimport { ILoginCommonParams } from 'New/login/context/view-context'\nconst dateImg = require('static/date@3x.png')\nconst SWIPER_LENGTH = 6\nconst error_pic = require('static/error-pic@3x.jpg')\n\ninterface CardProps extends CelebrityInfo {\n index: number\n onFollow: (uid: string, b: boolean) => void\n}\n\nconst follow = (\n isSubscribing: boolean,\n user_id_str: string,\n onFollow: (uid: string, b: boolean) => void,\n setIsSubscribing: (x: boolean) => void,\n globalState: { userData?: { user_id?: string } },\n openLogin: (commonParams?: ILoginCommonParams) => void\n) => {\n if (isSubscribing) return\n sendTeaCommEvent('click_home_live_top_anchor_follow', {\n anchor_id: user_id_str,\n })\n const my_user_id: number = get(globalState, 'userData.user_id')\n if (!my_user_id) {\n openLogin({\n enter_method: 'follow',\n })\n return\n }\n // 先假设关注成功\n setIsSubscribing(true)\n onFollow(user_id_str, true)\n focus({\n user_id: Number(my_user_id),\n to_user_id: Number(user_id_str),\n }).catch(() => {\n // 如果失败了,重置关注状态\n setIsSubscribing(false)\n onFollow(user_id_str, false)\n })\n}\n\nfunction Card(props: CardProps) {\n const {\n user_id_str = '',\n name,\n avatar_url = '',\n is_following = false,\n desc,\n index,\n onFollow,\n status,\n room_id,\n } = props\n\n const { state: globalState } = useContext(GlobalStoreContext)\n const { openLogin } = useContext(LoginStoreContext)\n const { className: avatar_class, styles: avatar_styles } = AvatarStyle\n const [isSubscribing, setIsSubscribing] = useState(is_following)\n\n // 更新订阅信息\n useEffect(() => {\n setIsSubscribing(is_following)\n }, [is_following])\n\n return (\n
\n
\n {index + 1}\n
\n \n {status === 2 ? (\n \n \n \n 直播中\n \n \n ) : (\n \n \n \n \n \n )}\n \n\n \n \n {name}\n \n \n {desc}\n {\n follow(\n isSubscribing,\n user_id_str,\n onFollow,\n setIsSubscribing,\n globalState,\n openLogin\n )\n }}\n >\n {isSubscribing ? '已关注' : '关注'}\n \n {avatar_styles}\n \n
\n )\n}\n\nexport interface CelebrityWeek {\n anchor_id: string\n desc: string\n date_week: string\n}\n\nexport interface CelebrityMonth {\n anchor_id: string\n desc: string\n date_month: string\n}\n\ninterface CelebrityInfo {\n user_id_str: string\n name: string\n avatar_url: string\n is_following: boolean\n desc: string\n status: number\n room_id: string\n}\n\nconst timestampToWeek = (timestamp: number, addDays = 6, showYear = false) => {\n try {\n const date = new Date(timestamp)\n const d = new Date(date.getTime() + addDays * 86400000)\n return `${showYear ? `${d.getFullYear()}/` : ''}${`0${\n d.getMonth() + 1\n }`.slice(-2)}/${`0${d.getDate()}`.slice(-2)}`\n } catch (e) {\n console.error(e)\n return ''\n }\n}\nconst timestampToMonth = (timestamp: number) => {\n const date = new Date(timestamp)\n return `${date.getFullYear()}/${`0${date.getMonth() + 1}`.slice(-2)}`\n}\n\nconst getAllIDs = async (timestamp: number, tag: 'weekly' | 'monthly') => {\n const params = {\n templated_key: tag === 'weekly' ? 'kol_rank_week' : 'kol_rank_month',\n timestamp,\n }\n try {\n const json = await fetch(`/motor/pleasure/common_rank?${stringify(params)}`)\n return json?.data?.rank_list || []\n } catch (err) {\n return []\n }\n}\n\nconst getCelebrity = async (\n tag: 'weekly' | 'monthly',\n timestamp: number,\n setInfo: (x: CelebrityInfo[]) => void\n) => {\n const ids: any[] = await getAllIDs(timestamp, tag)\n if (ids.length === 0) {\n return\n }\n const params = {\n user_ids: ids.map((e) => e.id_str).join(','),\n }\n return fetch(\n getUrl(`/motor/dlive/api/get_room_by_users?${stringify(params)}`)\n ).then((json) => {\n if (json.status !== 0) {\n throw new Error(`请求达人数据失败。 error status: ${json.status}\n error message: ${json.message}`)\n }\n setInfo(\n json.data.map(\n (e: {\n user_info: {\n user_id_str?: string\n name?: string\n avatar_url?: string\n }\n is_following?: boolean\n user_room_data_list: {\n status: number\n id_str: string\n }[]\n }) => {\n const {\n user_info: { user_id_str = '', name = '', avatar_url = '' },\n is_following = false,\n user_room_data_list = [],\n } = e\n const item = ids.find(({ id_str }) => id_str === user_id_str)\n const desc =\n item?.bottom_prefix && item?.bottom_value\n ? `${item?.bottom_prefix}: ${item?.bottom_value}`\n : ''\n const { status = 0, id_str: room_id = '' } =\n user_room_data_list?.[0] || {}\n return {\n user_id_str,\n name,\n avatar_url,\n is_following,\n desc,\n status,\n room_id,\n }\n }\n )\n )\n })\n}\n\nfunction Celebrity() {\n const [tagNow, setTagNow] = useState<'weekly' | 'monthly'>('monthly')\n const [weeklyInfo, setWeeklyInfo] = useState([])\n const [monthlyInfo, setMonthlyInfo] = useState([])\n const [timestamp, setTimestamp] = useState(0)\n const [weeklyDateTags, setWeeklyDateTags] = useState([])\n const [monthlyDateTags, setMonthlyDateTags] = useState([])\n const [isLoading, setLoading] = useState(false)\n const [failed, setFailed] = useState(false)\n const [fold, setFold] = useState(true)\n const ref = useRef(null)\n\n useEffect(() => {\n setTimestamp(tagNow === 'weekly' ? weeklyDateTags[0] : monthlyDateTags[0])\n }, [tagNow, weeklyDateTags, monthlyDateTags])\n\n useEffect(() => {\n const fetchData = async () => {\n const params = {\n rank_type: JSON.stringify(['kol_rank_week', 'kol_rank_month']),\n }\n try {\n const period_info =\n (await fetch(`/motor/pleasure/period_info?${stringify(params)}`))\n ?.data?.period_info || []\n const w = period_info?.[0]?.period_list?.sort(\n (a: number, b: number) => b - a\n )\n const m = period_info?.[1]?.period_list?.sort(\n (a: number, b: number) => b - a\n )\n setWeeklyDateTags(w || [])\n setMonthlyDateTags(m || [])\n } catch (err) {\n // no-op\n }\n }\n fetchData()\n }, [])\n\n const fetchCelebrityData = () => {\n const setInfo = tagNow === 'weekly' ? setWeeklyInfo : setMonthlyInfo\n setLoading(true)\n getCelebrity(tagNow, timestamp, setInfo)\n .then(() => {\n setLoading(false)\n setFailed(false)\n })\n .catch((e) => {\n setLoading(false)\n setFailed(true)\n console.error(e)\n })\n }\n\n // 请求周榜达人数据 & 请求月榜达人数据\n useEffect(() => {\n if (\n (tagNow === 'weekly' && weeklyDateTags.length > 0) ||\n (tagNow === 'monthly' && monthlyDateTags.length > 0)\n ) {\n fetchCelebrityData()\n }\n }, [timestamp])\n\n // 切换标签 从头展示\n // useEffect(() => {\n // setSelectDateIndex(0)\n // if (swiper && swiper.slideTo) {\n // swiper.slideTo(0)\n // }\n // }, [tagNow])\n\n const onFollow = (user_id: string, success: boolean) => {\n const wi = weeklyInfo.find((e) => e.user_id_str === user_id)\n const mi = monthlyInfo.find((e) => e.user_id_str === user_id)\n if (wi) {\n wi.is_following = success\n }\n if (mi) {\n mi.is_following = success\n }\n\n setWeeklyInfo(weeklyInfo)\n setMonthlyInfo(monthlyInfo)\n }\n\n const renderCards = () => {\n const dateTags = tagNow === 'weekly' ? weeklyDateTags : monthlyDateTags\n const dateLength = tagNow === 'weekly' ? 7 : 3\n\n return (\n <>\n {dateTags.slice(0, dateLength).map((e: number, index: number) => (\n {\n setTimestamp(e)\n }}\n >\n {tagNow === 'weekly'\n ? `${timestampToWeek(\n Number(e) * 1000,\n 0,\n true\n )} - ${timestampToWeek(Number(e) * 1000)}`\n : timestampToMonth(Number(e) * 1000)}\n
\n ))}\n \n \n )\n }\n return (\n
\n
\n

达人主播榜

\n {\n setFold(false)\n }}\n onBlur={() => {\n setFold(true)\n }}\n tabIndex={0}\n ref={ref}\n >\n {tagNow === 'weekly' ? (\n \n {timestampToWeek(timestamp * 1000, 0, true) || ''} -{' '}\n {timestampToWeek(timestamp * 1000) || ''}\n \n ) : (\n \n {timestampToMonth(timestamp * 1000) || ''}\n \n )}\n\n {\n if (ref.current) {\n ref.current.blur()\n }\n }}\n >\n {renderCards()}\n
\n
\n
\n {\n setTagNow('monthly')\n }}\n >\n 月榜\n \n {\n setTagNow('weekly')\n }}\n >\n 周榜\n \n
\n \n
\n {failed ? (\n
\n {isLoading ? (\n \n ) : (\n <>\n \n 网络异常,点击重试\n {\n fetchCelebrityData()\n }}\n >\n 重试\n \n \n )}\n
\n ) : isLoading ? (\n \n ) : (tagNow === 'monthly' && monthlyInfo.length > 1) ||\n (tagNow === 'weekly' && weeklyInfo.length > 1) ? (\n \n {(tagNow === 'monthly' ? monthlyInfo : weeklyInfo).map(\n (e, index) => (\n \n
\n \n
\n
\n )\n )}\n \n \n \n ) : (\n
\n \n
\n )}\n
\n \n \n )\n}\n\nexport default Celebrity\n","import React, { useState, useEffect, useMemo } from 'react'\nimport Link from 'next/link'\nimport getUrl from 'lib/url'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport Loading from 'Components/loading'\nimport ScrollLoader from 'Components/scroll-loader'\nimport serializeObject from '@arsenal/arsenal/modules/serializeObject'\nimport Cookies from '@arsenal/arsenal/modules/Cookies'\nimport { useCityName } from 'Components/hooks'\nimport formatNumber from '@arsenal/arsenal/modules/formatNumber'\nimport fetch from 'lib/decorated-fetch'\nconst LIVE_TYPE = 5258\nconst all_live_img = require('static/icon-all@3x.png')\nconst local_img = require('static/icon-local@3x.png')\nconst kol_img = require('static/icon-kol@3x.png')\nconst empty_pic = require('static/empty-pic@3x.png')\ninterface BrandCard {\n brand_id?: string\n name: string\n logo: string\n brand_initial?: string\n}\n\ninterface BrandProps {\n brandCard: BrandCard\n active?: boolean\n onClickTag: (bid: string) => void\n}\n\nconst live_black_gif = require('static/live-black.gif')\nexport interface LiveData {\n user_info: {\n name: string\n avatar_url: string\n user_id: string\n }\n share_info: {\n title: string\n share_url: string\n }\n user_count: number\n image_list: [{ url: string }]\n status_icon: string\n status: number\n unique_id_str: string\n card_content?: { list: [IBannerList] }\n type: number\n popularity_display?: string\n behot_time?: number\n}\n\nexport interface IBannerList {\n open_url: string\n img_url: string\n title: string\n gid: string\n user_info?: {\n user_id: string\n }\n}\n\ninterface CardProps extends LiveData {\n onClick: (uid: string, rid: string) => void\n}\n\nfunction Card(props: CardProps) {\n const {\n unique_id_str,\n status: type,\n share_info: { title, share_url },\n image_list,\n user_info: { name, avatar_url, user_id },\n user_count,\n onClick,\n } = props\n const url = image_list[0]?.url || ''\n return (\n {\n onClick(user_id, unique_id_str)\n }}\n >\n \n
\n
\n \n {type === 2 && (\n \n )}\n {type === 2 ? '直播中' : '直播预告'}{' '}\n \n \n {formatNumber(user_count)}人在观看\n \n
\n
\n \n\n
\n \n \n {title}\n \n \n \n \n \n {name}\n \n \n
\n\n \n \n )\n}\n\nfunction BrandCard(props: BrandProps) {\n const {\n brandCard: { logo, name, brand_id = '' },\n active,\n onClickTag,\n } = props\n return (\n {\n sendTeaCommEvent('click_home_live_living_select_tab', {\n sub_tab: brand_id,\n })\n onClickTag(brand_id)\n }}\n >\n \n {name}\n\n \n \n )\n}\n\ninterface RawLiveData {\n info: {\n user_info?: {} | undefined\n share_info?: {\n title: string\n share_url: string\n }\n status_icon: string\n image_list?: { url: string }[]\n status: number\n user_count?: 0\n card_content?: {}\n }\n unique_id_str: string\n type: number\n}\n\nexport const mapShownData = (e: RawLiveData) => {\n const {\n user_info = {},\n share_info = { title: '', share_url: '' },\n status_icon,\n image_list = [],\n status,\n user_count = 0,\n card_content = {},\n } = e.info\n return {\n user_count,\n user_info,\n share_info,\n image_list,\n status_icon,\n status,\n unique_id_str: e.unique_id_str,\n type: e.type,\n card_content,\n }\n}\n\nexport default function LiveShow({ liveData }: { liveData: LiveData[] }) {\n const [brands, setBrands] = useState([])\n const [brandNow, setBrandNow] = useState('all')\n const [shownData, setShownData] = useState([])\n const [isLoading, setLoading] = useState(false)\n const [loadMoreCount, setLoadMoreCount] = useState(1)\n const [lastCount, setLastCount] = useState(0)\n const [lastMaxTime, setLastMaxTime] = useState(0)\n const [first, setFirst] = useState(true)\n const cityName = useCityName()\n const filterShownData = (e: RawLiveData) => {\n return !shownData.map(e => e.unique_id_str).includes(e.unique_id_str)\n }\n useEffect(() => {\n setShownData(liveData)\n setLastMaxTime(liveData[liveData.length - 1]?.behot_time || lastMaxTime)\n setFirst(false)\n }, [liveData])\n\n // 请求正在直播的品牌标签\n useEffect(() => {\n const url = `motor/pleasure/epidemic/get_live_tabs?device_id=undefined`\n fetch(getUrl(url))\n .then(json => {\n const { brands } = json.data\n brands.unshift({ brand_id: 'bigv', name: '大咖直播', logo: kol_img })\n brands.unshift({ brand_id: 'local', name: '本地直播', logo: local_img })\n brands.unshift({\n brand_id: 'all',\n name: '全部直播',\n logo: all_live_img,\n })\n\n setBrands(json.data.brands)\n })\n .catch(error => {\n console.error(error)\n })\n }, [])\n\n const status = useMemo(() => {\n let params\n switch (brandNow) {\n case 'all':\n params = {\n tt_from: 'pull',\n category: 'motor_car_live',\n refer: 1,\n count: 12,\n impression_info: {\n page_id: 'page_category',\n sub_tab: 'motor_car_live',\n },\n motor_feed_extra_params: {\n new_feed: true,\n feed_type: 3,\n refresh_num: 0,\n loadmore_num: 0,\n from_page_id: 'page_category',\n live_sub_tab: 'all',\n },\n max_behot_time: 0,\n version_code: 600,\n channel: 'web',\n device_platform: 'web',\n aid: 1839,\n source: 'pc',\n }\n break\n case 'local':\n params = {\n tt_from: 'pull',\n category: 'motor_car_live_complex',\n refer: 1,\n count: 12,\n impression_info: {\n page_id: 'page_category',\n sub_tab: 'motor_car_live_complex',\n },\n motor_feed_extra_params: {\n new_feed: true,\n feed_type: 0,\n refresh_num: 23,\n loadmore_num: 0,\n from_page_id: 'page_category',\n live_sub_tab: 'local',\n live_brand_id: 61,\n source_from: 'pc',\n pc_city: cityName,\n },\n channel: 'web',\n device_platform: 'web',\n aid: 1839,\n source: 'pc',\n }\n break\n case 'bigv':\n params = {\n tt_from: 'pull',\n category: 'motor_car_live_complex',\n refer: 1,\n count: 12,\n impression_info: {\n page_id: 'page_category',\n sub_tab: 'motor_car_live_complex',\n },\n motor_feed_extra_params: {\n new_feed: true,\n feed_type: 3,\n refresh_num: 1,\n loadmore_num: 0,\n from_page_id: 'page_category',\n live_sub_tab: 'kol',\n },\n channel: 'web',\n device_platform: 'web',\n aid: 1839,\n source: 'pc',\n }\n break\n }\n if (!params && !Number.isNaN(Number(brandNow))) {\n params = {\n tt_from: 'pull',\n category: 'motor_car_live_complex',\n refer: 1,\n count: 12,\n impression_info: {\n page_id: 'page_category',\n sub_tab: 'motor_car_live_complex',\n },\n motor_feed_extra_params: {\n new_feed: true,\n feed_type: 3,\n refresh_num: 4,\n loadmore_num: 0,\n from_page_id: 'page_category',\n live_sub_tab: 'brand',\n live_brand_id: Number(brandNow),\n },\n channel: 'web',\n device_platform: 'web',\n aid: 1839,\n source: 'pc',\n }\n }\n params = params || {}\n return {\n defaultParams: params,\n brand: brandNow,\n }\n }, [brandNow, cityName])\n\n // 获取正在展示的直播数据\n useEffect(() => {\n if (first) {\n return\n }\n const { defaultParams, brand } = status\n setLoading(true)\n fetch(\n getUrl(\n `/motor/stream_entrance/get_feed/v46/?${serializeObject({\n ...defaultParams,\n user_id: Cookies('tt_webid') || '',\n })}`\n )\n )\n .then(json => {\n if (!json.data || !(Array.isArray(json.data) && json.data.length > 0)) {\n setShownData([])\n setLoading(false)\n return\n }\n if (brand === 'all') {\n setLastMaxTime(\n json.data?.[json.data?.length - 1]?.info?.behot_time || lastMaxTime\n )\n setShownData(\n json.data\n .map(mapShownData)\n .filter((e: { type: number }) => e.type === LIVE_TYPE)\n )\n } else {\n setLastCount(json.data?.length || lastCount)\n setShownData(json.data.map(mapShownData))\n }\n setLoading(false)\n })\n .catch(e => {\n setLoading(false)\n })\n setLoadMoreCount(1)\n }, [status, first])\n\n /* 懒加载 */\n function loadMoreHandler() {\n setLoading(true)\n if (brandNow === 'all') {\n const defaultParams = {\n tt_from: 'pre_load_more',\n category: 'motor_car_live',\n refer: 1,\n count: 9,\n impression_info: {\n page_id: 'page_category',\n sub_tab: 'motor_car_live',\n },\n motor_feed_extra_params: {\n new_feed: true,\n feed_type: 3,\n refresh_num: 2,\n loadmore_num: loadMoreCount,\n from_page_id: 'page_category',\n live_sub_tab: 'all',\n },\n max_behot_time: lastMaxTime,\n channel: 'web',\n device_platform: 'web',\n aid: 1839,\n user_id: Cookies('tt_webid') || '',\n source: 'pc',\n }\n fetch(\n getUrl(\n `/motor/stream_entrance/get_feed/v46/?${serializeObject(\n defaultParams\n )}`\n )\n )\n .then(json => {\n setLoadMoreCount(loadMoreCount + 1)\n setLastMaxTime(\n json.data?.[json.data?.length - 1]?.info?.behot_time || lastMaxTime\n )\n setShownData(\n shownData.concat(\n json.data\n .filter(filterShownData)\n .map(mapShownData)\n .filter((e: { type: number }) => e.type === LIVE_TYPE)\n )\n )\n setLoading(false)\n })\n .catch(e => {\n setLoading(false)\n })\n } else if (brandNow === 'local') {\n const defaultParams = {\n tt_from: 'pre_load_more',\n category: 'motor_car_live_complex',\n refer: 1,\n count: 12,\n impression_info: {\n page_id: 'page_category',\n sub_tab: 'motor_car_live_complex',\n },\n motor_feed_extra_params: {\n new_feed: true,\n feed_type: 3,\n refresh_num: 7,\n loadmore_num: loadMoreCount,\n from_page_id: 'page_category',\n live_sub_tab: 'local',\n live_brand_id: 12,\n source_from: 'pc',\n pc_city: cityName,\n },\n max_behot_time: lastCount,\n channel: 'web',\n device_platform: 'web',\n aid: 1839,\n user_id: Cookies('tt_webid') || '',\n source: 'pc',\n }\n fetch(\n getUrl(\n `/motor/stream_entrance/get_feed/v46/?${serializeObject(\n defaultParams\n )}`\n )\n )\n .then(json => {\n setLoadMoreCount(loadMoreCount + 1)\n setLastCount(lastCount + (json.data?.length || 0))\n setShownData(\n shownData.concat(\n json.data.filter(filterShownData).map(mapShownData)\n )\n )\n setLoading(false)\n })\n .catch(e => {\n setLoading(false)\n })\n } else if (brandNow === 'bigv') {\n const defaultParams = {\n tt_from: 'pre_load_more',\n category: 'motor_car_live_complex',\n refer: 1,\n count: 9,\n impression_info: {\n page_id: 'page_category',\n sub_tab: 'motor_car_live_complex',\n },\n motor_feed_extra_params: {\n new_feed: true,\n feed_type: 3,\n refresh_num: 1,\n loadmore_num: loadMoreCount,\n from_page_id: 'page_category',\n live_sub_tab: 'kol',\n },\n max_behot_time: lastCount,\n channel: 'web',\n device_platform: 'web',\n aid: 1839,\n user_id: Cookies('tt_webid') || '',\n source: 'pc',\n }\n fetch(\n getUrl(\n `/motor/stream_entrance/get_feed/v46/?${serializeObject(\n defaultParams\n )}`\n )\n )\n .then(json => {\n setLastCount(lastCount + (json.data?.length || 0))\n setLoadMoreCount(loadMoreCount + 1)\n setShownData(\n shownData.concat(\n json.data.filter(filterShownData).map(mapShownData)\n )\n )\n setLoading(false)\n })\n .catch(e => {\n setLoading(false)\n })\n } else if (!Number.isNaN(Number(brandNow))) {\n const defaultParams = {\n tt_from: 'pre_load_more',\n category: 'motor_car_live_complex',\n refer: 1,\n count: 9,\n impression_info: {\n page_id: 'page_category',\n sub_tab: 'motor_car_live_complex',\n },\n motor_feed_extra_params: {\n new_feed: true,\n feed_type: 3,\n refresh_num: 5,\n loadmore_num: loadMoreCount,\n from_page_id: 'page_category',\n live_sub_tab: 'brand',\n live_brand_id: Number(brandNow),\n },\n max_behot_time: lastCount,\n channel: 'web',\n device_platform: 'web',\n aid: 1839,\n user_id: Cookies('tt_webid') || '',\n source: 'pc',\n }\n fetch(\n getUrl(\n `/motor/stream_entrance/get_feed/v46/?${serializeObject(\n defaultParams\n )}`\n )\n )\n .then(json => {\n setLoadMoreCount(loadMoreCount + 1)\n setLastCount(lastCount + (json.data?.length || 0))\n setShownData(\n shownData.concat(\n json.data.filter(filterShownData).map(mapShownData)\n )\n )\n setLoading(false)\n })\n .catch(e => {\n setLoading(false)\n })\n }\n }\n\n return (\n
\n

正在直播

\n\n
\n {brands.map(e => (\n {\n setBrandNow(bid)\n }}\n />\n ))}\n
\n\n \n
\n {shownData.length !== 0 ? (\n shownData.map((e, index) => (\n {\n sendTeaCommEvent('click_home_live_living_cell', {\n sub_tab: brandNow,\n anchor_id: user_id,\n room_id: unique_id_str,\n })\n }}\n />\n ))\n ) : !isLoading ? (\n
\n \n \n 当前直播已结束\n
\n 再去看看其他的吧~\n
\n
\n ) : null}\n
\n \n {isLoading && }\n\n \n
\n )\n}\n","import React, { useState, useEffect, CSSProperties, useMemo } from 'react'\nimport LiveSwiper from './components/live-swiper'\nimport Followees from './components/followees'\nimport serializeObject from '@arsenal/arsenal/modules/serializeObject'\nimport Cookies from '@arsenal/arsenal/modules/Cookies'\nimport Footer from 'Components/footer-statement'\nimport { isNewVersion } from 'lib/version'\nimport Head from 'next/head'\n\nimport Celebrity, {\n CelebrityMonth,\n CelebrityWeek,\n} from './components/celebrity'\nimport LiveShows, {\n LiveData,\n IBannerList,\n mapShownData,\n} from './components/live-show'\nimport getUrl from 'lib/url'\nimport fetch from 'lib/decorated-fetch'\n\ninterface IBannerProps {\n bannerData: IBannerList[]\n loaded: 0 | 1 | 2\n}\n\nconst BANNER_TYPE = 5256\nconst SECOND_TYPE = 5257\nconst LIVE_TYPE = 5258\nconst LIMIT = 5\n\n// 获取banner位数据\nconst getBannerData = async (allInfo: LiveData[]) => {\n const bannerData: IBannerList[] = []\n allInfo\n .filter(e => e?.type === BANNER_TYPE)\n .forEach(e => {\n const list = e?.card_content?.list || []\n list.forEach(e => {\n if (/livechat/.test(e?.open_url || '')) {\n //const result = (e?.open_url || '').match(/room_id=(\\d+)/)\n bannerData.push({\n open_url: e?.open_url,\n img_url: e?.img_url,\n title: e?.title,\n gid: e?.gid,\n })\n }\n })\n })\n if (bannerData.length > 0) {\n return bannerData\n }\n const web_id = Cookies('tt_webid') || ''\n const defaultParams = {\n tt_from: 'pull',\n category: 'motor_car_live_complex',\n refer: 1,\n count: 12,\n impression_info: JSON.stringify({\n page_id: 'page_category',\n sub_tab: 'motor_car_live_complex',\n }),\n motor_feed_extra_params: JSON.stringify({\n new_feed: true,\n feed_type: 3,\n refresh_num: 1,\n loadmore_num: 0,\n from_page_id: 'page_category',\n live_sub_tab: 'kol',\n }),\n channel: 'web',\n device_platform: 'web',\n aid: 1839,\n user_id: web_id,\n source: 'pc',\n }\n try {\n const json = await fetch(\n getUrl(\n `/motor/stream_entrance/get_feed/v46/?${serializeObject(defaultParams)}`\n )\n )\n const kols: any[] = []\n for (let i = 0; i < (json.data?.length || 0); i++) {\n const ele = json.data[i]\n if (i > 0) {\n if (kols[0].gid !== ele.unique_id_str) {\n kols.push({\n open_url: ele?.info?.share_info?.share_url,\n img_url: ele?.info?.image_list?.[0]?.url,\n title: ele?.info?.title,\n gid: ele?.unique_id_str,\n })\n break\n }\n } else {\n kols.push({\n open_url: ele?.info?.share_info?.share_url,\n img_url: ele?.info?.image_list?.[0]?.url,\n title: ele?.info?.title,\n gid: ele?.unique_id_str,\n })\n }\n }\n return [\n ...kols,\n ...(allInfo\n ?.filter(e => e?.type === LIVE_TYPE)\n ?.slice(0, 3 - kols.length)\n ?.map(e => ({\n open_url: e?.share_info?.share_url,\n img_url: e?.image_list?.[0]?.url,\n title: e?.share_info?.title,\n gid: e?.unique_id_str,\n })) || []),\n ]\n } catch (err) {\n return (\n allInfo\n ?.filter(e => e?.type === LIVE_TYPE)\n ?.slice(0, 3)\n ?.map(e => ({\n open_url: e?.share_info?.share_url,\n img_url: e?.image_list?.[0]?.url,\n title: e?.share_info?.title,\n gid: e?.unique_id_str,\n })) || []\n )\n }\n}\n\nexport const renderTitle = (\n noData = false,\n title: string | undefined,\n loaded = 0,\n style: CSSProperties = {},\n defaultStyle: CSSProperties = {}\n) => {\n const default_style = noData ? defaultStyle : {}\n return (\n

\n {!noData\n ? title\n : loaded === 1\n ? '本时段暂无直播,可以逛逛其他内容哦~'\n : loaded === 0\n ? '直播加载中'\n : '网络异常,建议刷新页面重试哦~'}\n

\n )\n}\n\nconst LiveBannerWrapper = (props: IBannerProps) => {\n const { bannerData = [], loaded = 0 } = props\n const [slideIndex, setSlideIndex] = useState(0)\n return (\n
\n \n \n \n\n
\n {renderTitle(\n bannerData.length === 0,\n bannerData[slideIndex]?.title,\n loaded,\n {\n fontSize: '18px',\n fontWeight: 500,\n lineHeight: '24px',\n },\n {\n color: '#979aa8',\n textAlign: 'center',\n fontSize: '16px',\n width: '100%',\n }\n )}\n {bannerData.length !== 0 && (\n \n \n \n )}\n
\n\n \n
\n )\n}\n\nfunction LiveHome() {\n const [bannerData, setBannerData] = useState([])\n const [allInfo, setAllInfo] = useState([])\n const [loaded, setLoaded] = useState<0 | 1 | 2>(0) // 0未加载 1已加载 2加载失败\n useEffect(() => {\n const web_id = Cookies('tt_webid') || ''\n const defaultParams = {\n tt_from: 'pull',\n category: 'motor_car_live',\n refer: 1,\n count: 14,\n impression_info: JSON.stringify({\n page_id: 'page_category',\n sub_tab: 'motor_car_live',\n }),\n motor_feed_extra_params: JSON.stringify({\n new_feed: true,\n feed_type: 3,\n refresh_num: 0,\n loadmore_num: 0,\n from_page_id: 'page_category',\n live_sub_tab: 'all',\n }),\n max_behot_time: 0,\n version_code: 600,\n channel: 'web',\n device_platform: 'web',\n aid: 1839,\n user_id: web_id,\n source: 'pc',\n }\n\n fetch(\n getUrl(\n `/motor/stream_entrance/get_feed/v46/?${serializeObject(defaultParams)}`\n )\n )\n .then(json => {\n const result = json.data?.map(mapShownData) || []\n setAllInfo(result)\n setLoaded(1)\n })\n .catch(e => {\n setLoaded(2)\n console.error('初次加载全部直播失败', e)\n })\n }, [])\n\n // 当依赖变化时,更新banner位数据\n useEffect(() => {\n getBannerData(allInfo).then(setBannerData)\n }, [allInfo])\n\n // 切换直播主页背景色\n useEffect(() => {\n const color = document.body.style.backgroundColor\n document.body.style.backgroundColor = '#f7f8fc'\n return () => {\n document.body.style.backgroundColor = color\n }\n }, [])\n\n // 通过useMemo传入数据 避免浏览器页面切换时 触发组件重渲染 prop diff为true\n const liveData = useMemo(\n () =>\n allInfo.filter(\n e =>\n !bannerData?.find(bd => bd.gid === e.unique_id_str) &&\n e.type === LIVE_TYPE\n ),\n [allInfo, bannerData]\n )\n\n return (\n
\n \n \n \n \n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n \n
\n )\n}\n\nLiveHome.getInitialProps = async (props: any) => {\n return {\n _pageType: isNewVersion(props?.req?._isNewVersion) ? 'full auto-nav' : '',\n }\n}\nexport default LiveHome\n","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/icon-kol@3x-1555a5cca3942e99a13452d66cd92d3c.png\";","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/empty-pic@3x-86c44b3d900009bb58749fabe418c787.png\";","/* 声明文件 */\nimport React from 'react'\nimport { isNewVersion } from 'lib/version'\nexport default function Statement({ className }: { className?: string }) {\n const year = new Date().getFullYear()\n return (\n
\n
\n

\n © {year} 懂车帝 www.dongchedi.com{' '}\n \n 京公网安备 11010802026035号{' '}\n \n \n 京ICP备17027026号-3{' '}\n \n \n 增值电信业务经营许可证(京B2-20180202)\n \n \n 广播电视节目制作经营许可证\n \n

\n

\n 公司名称:北京空间变换科技有限公司{' '}\n \n 中央网信办违法和不良信息举报中心{' '}\n \n 违法和不良信息举报电话:400-140-2108\n

\n

\n \n 懂车帝用户协议\n {' '}\n |{' '}\n \n 懂车帝隐私政策\n {' '}\n |{' '}\n \n 营业执照\n \n

\n

\n {/* \n 侵权投诉\n {' '}\n |{' '}\n {\n if (isNewVersion()) {\n PubSub.publish('OPEN_FEEDBACK')\n } else if ('dpFeedback' in window) {\n window.dpFeedback.start()\n }\n }}\n >\n 我要反馈\n */}\n

\n
\n \n
\n )\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/icon-local@3x-d4cbc092f9df8cfaee142b00a0130bed.png\";","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAACp0lEQVRoBe1ZvW7bMBAmbTdw0Rco4C4tkLpO0NaAbGfp2qBzhj5Mt0xd+xgFsgdFunZxbANekvRn6FAEyNilQGDLvhzVECEpSieKkQQDEiDwSN733R15J8sUY/VVr4DXCvC86NnsZy+E8CPiocVbH4Lg+YULly9e2mpJwbUNYfWZAXslcCFbPcPmtQuHL17aakjBuQWInBc43MaXpeNvDeYPQPEYAHKnoqDxwccM3+Umf6L4GBcBAm2Q85nWpzrOePhjq7VYDdzlJlAu6POmQ/os3aPxga3W4imk5DZttVwNW63FAyjXJydrtlqJpZDJ2GrwgTkm+uEapup4kp6qo8pZ8aaeyiFkMoAg6FmLczw517iS9DQlpZMVb+opFJGYO4U4Z38lmSrLMapVMapM4cx5nwAOOefr/zc7NImpPjrthZf8uQMYBjuf2MN2R9yRLBkztr54aYasAaloa0e7T69s41nHfPHCTu4dyOpk0XrkDkwm52+LdiKNf502iXNkAEhwQnBUOr3xKbTxAZAphM/5r1XmCL7/pNYgGcBo0NuvMgB8lUh9r9/4FKoDqDK9hO2N3wGyiKkVns9/dBYr9gbfLrcoXXUegC22muxbv9+9VMddZa8ATue/dhfhcozOPEp9VCR4tQD2Dzn2Rv3tswQVctgvhcLlgXCetJKgEGGRI2E607BXABya1r+bmSzfKvlyeKXQcNg9Hk+/v2ewfof+PHBxHHWXjDe+DAfdY0ecpu4VgGDaG7w4wkbclVxeKVSJx4bROgBjQUrv1jtQ+pIbBsmn0Hh6oZ2BGvjiu/hrl3aRAeDnE/1DRhpbBXOxGvA5pyzaf5tvtgCiM8uinXHlTzqDjX0jE8SnZ78fN6+vO65GitRftduX93EUWaSPNXe9AlWswA3vQcpaC1YLoQAAAABJRU5ErkJggg==\"","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/error-pic@3x-acb37b219b8d78197595f56ab4ba1879.jpg\";"],"sourceRoot":""}