import messageCenter from '@/uilts/messageCenter/content'; import { getCookie, isMobileTwitter } from '@/uilts/help' import axios from 'axios'; const TwitterGetUserInfoByName = (params) => { let {screen_name} = params; let url = isMobileTwitter() ? `https://mobile.twitter.com/i/api/graphql/gr8Lk09afdgWo7NvzP89iQ/UserByScreenName?variables=%7B%22screen_name%22%3A%22${screen_name}%22%2C%22withSafetyModeUserFields%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%7D` : `https://twitter.com/i/api/graphql/mCbpQvZAw6zu_4PvuAUVVQ/UserByScreenName?variables=%7B%22screen_name%22%3A%22${screen_name}%22%2C%22withSafetyModeUserFields%22%3Atrue%2C%22withSuperFollowsUserFields%22%3Atrue%7D` return axios.get(url, { headers: { "accept": "*/*", "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7", "authorization": "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA", "content-type": "application/json", "sec-ch-ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"101\", \"Google Chrome\";v=\"101\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-csrf-token": getCookie('ct0'), "x-twitter-active-user": "yes", "x-twitter-auth-type": "OAuth2Session", "x-twitter-client-language": "en" } }) } const TwitterApiGetUserInfoByName = ({info, data}) => { TwitterGetUserInfoByName({screen_name: data.screen_name}).then(res => { messageCenter.send({ info, data: res.data.data, }) }).catch(err => { messageCenter.send({ info, data: {err} }) }) } const TwitterApiGetUserListInfoByName = ({info, data}) => { let promiseList = []; let {userList} = data; for (let i = 0; i < userList.length; i++) { promiseList[i] = TwitterGetUserInfoByName({ screen_name: userList[i]['name'] }); } Promise.allSettled(promiseList).then((res) => { let list = []; if (res && res.length) { let resList = res.filter(item => item.status == 'fulfilled'); for (let i = 0; i < resList.length; i++) { let item = resList[i]; if (item && item.value && item.value.data && item.value.data.data) { list.push(item.value.data.data) } } } messageCenter.send({info, data: { list: list }}); }).catch(err => { messageCenter.send({info, data: { list: [] }}) }) } export default { TwitterApiGetUserInfoByName, TwitterApiGetUserListInfoByName }