def request_file(self): headers = parse_raw_header(f""" Accept: */* User-Agent: {ua} Accept-Language: zh-cn Accept-Encoding: identity Connection: Keep-Alive """) self.meishe.log_msg(f'download {self.video_url} -> {self.local_video}') r = requests.get(self.video_url, headers=headers) save_bfile(self.local_video, r.content) self.meishe.log_msg(f'download {self.logo_url} -> {self.local_image}') r = requests.get(self.logo_url, headers=headers) save_bfile(self.local_image, r.content)
def request_video_list(self): header = parse_raw_header(f''' Accept: */* Sec-Fetch-Dest: empty User-Agent: {ua} Origin: https://m.meisheapp.com Sec-Fetch-Site: same-site Sec-Fetch-Mode: cors Referer: {self.html_url} Accept-Encoding: gzip, deflate, br Accept-Language: en,zh-CN;q=0.9,zh;q=0.8 ''') start_id = self.get_start_id() url = f'https://community.meisheapp.com/meishe/user/?queryUserId={self.user_id}&command=getUserFilmList&token=&userId=&maxNum=10&startId={start_id}' response = requests.get(url, headers=header) self.log_msg(f'request videos {url} {response.status_code}') return response.status_code == 200, response.json()
def request_video_index(self): headers = parse_raw_header(f""" Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Accept: */* Sec-Fetch-Dest: empty User-Agent: {ua} Origin: https://m.meisheapp.com Sec-Fetch-Site: same-site Sec-Fetch-Mode: cors Referer: {self.request_url} Accept-Encoding: gzip, deflate, br Accept-Language: en,zh-CN;q=0.9,zh;q=0.8 """) url = f'https://api.meisheapp.com/v1/asset/index?asset_id={self.asset_id}&access_token={self.token}&need_ch=1&is_first=0&need_gif=1' r = requests.get(url, headers=headers) return r.status_code, r.json()
def request_video_html(self): headers = parse_raw_header(f''' accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 accept-encoding: gzip, deflate, br accept-language: en,zh-CN;q=0.9,zh;q=0.8 cache-control: no-cache pragma: no-cache referer: {self.meishe.html_url} sec-fetch-dest: document sec-fetch-mode: navigate sec-fetch-site: same-origin sec-fetch-user: ?1 upgrade-insecure-requests: 1 user-agent: {ua} ''') r = requests.get(self.publish_url, headers=headers) self.request_url = r.request.url return r.status_code == 200, r.content.decode('utf8')
def request_html(self): header = parse_raw_header(''' accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 accept-encoding: gzip, deflate, br accept-language: en,zh-CN;q=0.9,zh;q=0.8 cache-control: no-cache cookie: accessToken_pro={token} pragma: no-cache sec-fetch-dest: document sec-fetch-mode: navigate sec-fetch-site: none sec-fetch-user: ?1 upgrade-insecure-requests: 1 user-agent: {ua} '''.format(ua=ua, token=self.token)) response = requests.get(self.html_url, headers=header) self.log_msg(f'request html {self.html_url} {response.status_code}') return response.status_code == 200, response.content.decode('utf8')
def request_detail(self): header = parse_raw_header(f''' Accept: */* Accept-Encoding: gzip, deflate, br Accept-Language: en,zh-CN;q=0.9,zh;q=0.8 Cache-Control: no-cache Connection: keep-alive Host: api.meisheapp.com Origin: https://m.meisheapp.com Pragma: no-cache Referer: {self.html_url} Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: same-site user-agent: {ua} ''') url = f'https://api.meisheapp.com/v1/user/detail?query_user_id={self.user_id}&token=&user_id=&access_token={self.token}' response = requests.get(url, headers=header) self.log_msg(f'request detail {url} {response.status_code}') return response.status_code == 200, response.json()
def refresh_token(self, user_id): headers = parse_raw_header(''' Host: api.meisheapp.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:75.0) Gecko/20100101 Firefox/75.0 Accept: */* Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate, br Origin: https://m.meisheapp.com Connection: keep-alive Referer: https://m.meisheapp.com/person/index.html?id={user_id} Pragma: no-cache Cache-Control: no-cache '''.format(user_id=user_id)) response = requests.get(self.token_url, headers=headers) if response.status_code != 200: raise ResponseError('not 200') data = response.json() if data['errNo'] != 0: raise ResponseError('errNo not 0') return data['access_token'], data['expires']