66 lines
3.1 KiB
Python
66 lines
3.1 KiB
Python
from urllib.parse import urlparse
|
|
|
|
from curl_cffi import requests
|
|
from loguru import logger
|
|
|
|
session = requests.Session()
|
|
|
|
|
|
def connect_dc(dc_auth_token, authUrl):
|
|
# 1.初始化dc参数
|
|
# TODO
|
|
query = urlparse(authUrl).query
|
|
|
|
url = "https://discord.com/api/v9/oauth2/authorize?" + str(query)
|
|
|
|
headers = {
|
|
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36',
|
|
'Content-Type': 'application/json',
|
|
'sec-ch-ua-platform': '"macOS"',
|
|
'authorization': dc_auth_token,
|
|
'x-debug-options': 'bugReporterEnabled',
|
|
'sec-ch-ua': '"Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"',
|
|
'sec-ch-ua-mobile': '?0',
|
|
'x-discord-timezone': 'Asia/Shanghai',
|
|
'x-super-properties': 'eyJvcyI6Ik1hYyBPUyBYIiwiYnJvd3NlciI6IkNocm9tZSIsImRldmljZSI6IiIsInN5c3RlbV9sb2NhbGUiOiJ6aC1DTiIsImhhc19jbGllbnRfbW9kcyI6ZmFsc2UsImJyb3dzZXJfdXNlcl9hZ2VudCI6Ik1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzE1XzcpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMzMuMC4wLjAgU2FmYXJpLzUzNy4zNiIsImJyb3dzZXJfdmVyc2lvbiI6IjEzMy4wLjAuMCIsIm9zX3ZlcnNpb24iOiIxMC4xNS43IiwicmVmZXJyZXIiOiJodHRwczovL2Rpc2NvcmQuY29tLz9kaXNjb3JkdG9rZW49TVRNeE5UazFPRFUzTXpZM05EWTJNemsxTncuR0NSQldfLllhQXRaMi0zU3VqMHJTZ2VYWHJ4eU5oTlRFalJPX1VKdWRJRmRzIiwicmVmZXJyaW5nX2RvbWFpbiI6ImRpc2NvcmQuY29tIiwicmVmZXJyZXJfY3VycmVudCI6Imh0dHBzOi8vd3d3LmFicy54eXovIiwicmVmZXJyaW5nX2RvbWFpbl9jdXJyZW50Ijoid3d3LmFicy54eXoiLCJyZWxlYXNlX2NoYW5uZWwiOiJzdGFibGUiLCJjbGllbnRfYnVpbGRfbnVtYmVyIjozNjkxOTUsImNsaWVudF9ldmVudF9zb3VyY2UiOm51bGx9',
|
|
'x-discord-locale': 'zh-CN',
|
|
'origin': 'https://discord.com',
|
|
'sec-fetch-site': 'same-origin',
|
|
'sec-fetch-mode': 'cors',
|
|
'sec-fetch-dest': 'empty',
|
|
'referer': 'https://discord.com/oauth2/authorize?response_type=code&client_id=1301224774013554708&redirect_uri=https%3A%2F%2Fbackend.portal.abs.xyz%2Fapi%2Fsocial%2Fdiscord%2Fcallback&scope=identify+guilds+guilds.members.read&state=yRdVRTai71NWTwtu8Wj7JXAE37F7qyUNijngr4WtPm1P0HizW2UbiW7FPougN29CfViUUDPJbXhyqiMPyx9U5Ej6cr8nOR8MtpXN7CWYrGX1h74OCaVdWzSdIWA5L9vQfp2J4suaYZhVLBReaNx2ImHsYd2qR2nP2Uxcndmrw1Z3NRKWSir2ky3tv527tW0IFHpZxxSW6BsfYBM7blMgDfXvub0YMT6OMFx5h1x2MG8hKBBuVuIwiU1VCFRLh742%3A0x360D42daA8C381bCe7c3Fa88f5c8Cf9f4812591F%3A0',
|
|
'accept-language': 'zh-CN,zh;q=0.9',
|
|
'priority': 'u=1, i',
|
|
}
|
|
|
|
json_data = {
|
|
'guild_id': '1248792620067721256',
|
|
'permissions': '0',
|
|
'authorize': True,
|
|
'integration_type': 0,
|
|
'location_context': {
|
|
'guild_id': '10000',
|
|
'channel_id': '10000',
|
|
'channel_type': 10000,
|
|
},
|
|
}
|
|
|
|
response = session.post(
|
|
url,
|
|
headers=headers,
|
|
json=json_data,
|
|
)
|
|
|
|
logger.info(response.text)
|
|
location_url = response.json()['location']
|
|
# 项目方 回调
|
|
# TODO
|
|
res = session.get(location_url)
|
|
if res.status_code == 200:
|
|
return True
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
connect_dc(dc_auth_token="MTI4MjkzNzM2NjY5NjQyNzU5Mg.GB6HnN.AQjNUaBFOfYOaOUF6ZCf7muu53-vBRQ31KyIgE")
|