60 lines
1.6 KiB
Python
60 lines
1.6 KiB
Python
|
|
import requests
|
|||
|
|
|
|||
|
|
def sign_in(headers, cookies):
|
|||
|
|
data = {
|
|||
|
|
'data': {
|
|||
|
|
'type': 'users',
|
|||
|
|
'attributes': {
|
|||
|
|
'canCheckin': True,
|
|||
|
|
'totalContinuousCheckIn': 2
|
|||
|
|
},
|
|||
|
|
'id': '1684'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
url = 'https://invites.fun/api/users/1684'
|
|||
|
|
|
|||
|
|
response = requests.post(url, json=data, headers=headers, cookies=cookies)
|
|||
|
|
|
|||
|
|
if response.status_code == 200:
|
|||
|
|
print('签到成功!')
|
|||
|
|
elif response.status_code == 401: # Unauthorized, indicating expired cookies
|
|||
|
|
print('Cookies已过期,请重新输入。')
|
|||
|
|
new_cookies = input('请输入新的Cookies:')
|
|||
|
|
new_csrf_token = input('请输入新的X-Csrf-Token:')
|
|||
|
|
cookies.update({'flarum_remember': new_cookies})
|
|||
|
|
headers.update({'X-Csrf-Token': new_csrf_token})
|
|||
|
|
sign_in(headers, cookies)
|
|||
|
|
else:
|
|||
|
|
print('签到失败。错误码:', response.status_code)
|
|||
|
|
|
|||
|
|
def get_cookies_and_token():
|
|||
|
|
url = 'https://invites.fun/'
|
|||
|
|
|
|||
|
|
response = requests.get(url)
|
|||
|
|
|
|||
|
|
cookies = response.cookies.get_dict()
|
|||
|
|
flarum_session = cookies.get('flarum_session')
|
|||
|
|
|
|||
|
|
x_csrf_token = response.headers.get('X-Csrf-Token')
|
|||
|
|
|
|||
|
|
return flarum_session, x_csrf_token
|
|||
|
|
|
|||
|
|
# 获取 cookies 和 X-Csrf-Token
|
|||
|
|
flarum_session, x_csrf_token = get_cookies_and_token()
|
|||
|
|
|
|||
|
|
# 设置 cookies 和 headers
|
|||
|
|
cookies = {
|
|||
|
|
'flarum_remember': 'JT5tSxOH0QzglSmU67Wq7ici6ecxhIc1U7pEOOOh',
|
|||
|
|
'flarum_session': flarum_session
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
headers = {
|
|||
|
|
'Content-Type': 'application/vnd.api+json',
|
|||
|
|
'X-Csrf-Token': x_csrf_token,
|
|||
|
|
'X-Http-Method-Override': 'PATCH'
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 执行签到请求
|
|||
|
|
sign_in(headers, cookies)
|