(self)
| 2070 | return base64.b64encode(cipher.encrypt(padded)).decode() |
| 2071 | |
| 2072 | def getTicketByNative_cloud(self): |
| 2073 | for attempt in range(1, 4): |
| 2074 | try: |
| 2075 | url = f"{self.cloudDiskUrls['getTicketByNative']}?appId=edop_unicom_d67b3e30&token={self.ecs_token}" |
| 2076 | headers = { |
| 2077 | 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 unicom{version:iphone_c@12.0301}", |
| 2078 | 'Connection': "Keep-Alive", |
| 2079 | 'Accept-Encoding': "gzip", |
| 2080 | } |
| 2081 | res = self.session.get(url, headers=headers).json() |
| 2082 | if res.get('ticket'): |
| 2083 | self.cloudDisk.ticket = res['ticket'] |
| 2084 | return res['ticket'] |
| 2085 | elif str(res.get('code')) == "9999": |
| 2086 | self.log(f"getTicketByNative_cloud 票据失效或被拦截: {res}") |
| 2087 | except Exception as e: |
| 2088 | err_msg = str(e) |
| 2089 | if attempt < 3 and os.environ.get("UNICOM_PROXY_API") and ("Max retries exceeded" in err_msg or "timed out" in err_msg.lower() or "connection" in err_msg.lower() or "SOCKS" in err_msg): |
| 2090 | self.log(f"getTicketByNative_cloud 第{attempt}次异常触发故障转移: {err_msg}") |
| 2091 | self.failover_proxy() |
| 2092 | continue |
| 2093 | self.log(f"getTicketByNative_cloud 第{attempt}次重试 - 异常: {e}") |
| 2094 | time.sleep(2) |
| 2095 | return None |
| 2096 | |
| 2097 | def get_ltypDispatcher_cloud(self, ticket): |
| 2098 | for attempt in range(1, 4): |
no test coverage detected