def do_report(self, report: Report): url = 'https://app.nwu.edu.cn/ncov/wap/open-report/save' headers = { "Content-Type": "application/x-www-form-urlencoded", "Accept": "application/json, text/plain, */*", "Host": "app.nwu.edu.cn", "Accept-Language": "en-us", "Accept-Encoding": "br, gzip, deflate", "Origin": "https://app.nwu.edu.cn", "Referer": "https://app.nwu.edu.cn/site/ncov/dailyup", "Connection": "keep-alive", "Content-Length": "1780", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) " "AppleWebKit/605.1.15 (KHTML, like Gecko) " "Version/13.1 Safari/605.1.15", "X-Requested-With": "XMLHttpRequest", } data = { "sfzx": "1" if report.sfzx else "0", "tw": "1", "address": report.address, "area": report.area, "province": report.province, "city": report.city, "geo_api_info": report.geo_api_info, "sfcyglq": "0", "sfyzz": "0", "qtqk": "", "ymtys": "", } cookie_jar = pickle.loads(report.user.cookie) try: cookie_dict = cookie_jar.get_dict() cookie_str = '' for i in cookie_dict: cookie_str += i + '=' + cookie_dict[i] + '; ' headers['Cookie'] = cookie_str r = requests.post(url, headers=headers, data=data) r = json.loads(r.text) if r['e'] == 1 or r['e'] == 0: logger.info( f'{report.user.username}-{report.user.name} {r["m"]}') if report.last_report_message: report.last_report_message = '' self.model_save_with_retry(report) return True else: logger.warning( f'{report.user.username}-{report.user.name} {r}') report.last_report_message = f'[{datetime.now()} {r}]' self.model_save_with_retry(report) return False except requests.exceptions.ConnectionError as e: logger.warning(f'{report.user.username}-{report.user.name} 连接失败\n' f'错误信息: {e}') report.last_report_message = f'[{datetime.now()} 连接失败\n' f'错误信息: {e}]' self.model_save_with_retry(report) return False