Skip to content

Commit

Permalink
Revert "refactored" (#80)
Browse files Browse the repository at this point in the history
Reverts #79
  • Loading branch information
ZianTT authored Jun 17, 2024
2 parents 8c1a0f8 + 4b3e1d4 commit 22dc5fe
Show file tree
Hide file tree
Showing 4 changed files with 150 additions and 182 deletions.
29 changes: 9 additions & 20 deletions globals.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@
from loguru import logger
from sentry_sdk.integrations.loguru import LoggingLevels, LoguruIntegration

import inquirer

logger.remove(handler_id=0)
handler_id = logger.add(
sys.stderr,
Expand All @@ -24,13 +22,9 @@
elif os.path.exists("do-not-upload-error"):
sample_rate=0
else:
is_upload_error = inquirer.prompt([
inquirer.Confirm(
'upload',
message="可选的错误上传:您是否选择上传可能遇到的错误以帮助我们改善脚本?",
),
])
if not is_upload_error:
logger.info("可选的错误上传:您是否选择上传可能遇到的错误以帮助我们改善脚本?(Y/n)")
is_upload_error = input()
if is_upload_error.lower() == "n":
logger.info("已选择不上传错误")
sample_rate=0
with open("do-not-upload-error", "w") as f:
Expand Down Expand Up @@ -69,18 +63,13 @@ class HygException(Exception):
def load_config():
# 判断是否存在config.json
if os.path.exists("config.json"):
is_use_config = inquirer.prompt([
inquirer.List(
'use_config',
message="已存在上一次的配置文件,是否沿用全部或只沿用登录信息(包括风控信息)?",
choices=['全部', '只沿用登录信息', '不沿用'],
default='全部',
),
])
if is_use_config["use_config"] == "不沿用":
is_use_config = input(
"已存在上一次的配置文件,是否沿用全部或只沿用登录信息(包括风控信息)?(Y/l/n)"
)
if is_use_config == "n":
logger.info("重新配置")
config = {}
elif is_use_config["use_config"] == "只沿用登录信息":
elif is_use_config == "l":
logger.info("只沿用登录信息")
with open("config.json", "r", encoding="utf-8") as f:
config = {}
Expand All @@ -94,7 +83,7 @@ def load_config():
logger.error("读取cookie失败,重新配置")
config = {}
else:
if is_use_config["use_config"].lower() == "全部":
if is_use_config.lower() == "y":
logger.info("使用上次的配置文件")
else:
logger.info("已默认使用上次的配置文件")
Expand Down
59 changes: 25 additions & 34 deletions login.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import base64
import inquirer
import json
import time

import qrcode
Expand Down Expand Up @@ -76,10 +76,15 @@ def verify_code_login(session, headers):
gt = captcha["data"]["geetest"]["gt"]
challenge = captcha["data"]["geetest"]["challenge"]
token = captcha["data"]["token"]
tel = inquirer.prompt([
inquirer.Text("tel", message="请输入手机号(仅支持大陆手机号)", validate=lambda _, x: len(x) == 11 and x.isdigit())
])["tel"]
cid = "86"
tel = input("请输入手机号(非大陆手机号请添加国家号,如+1 4438888888): ").split(
" "
)
if len(tel) == 1:
cid = "+86"
tel = tel[0]
else:
cid = tel[0]
tel = tel[1]
logger.info("请稍后,正在执行自动验证...")
cap_data = _verify(gt, challenge, token)
while cap_data == False:
Expand All @@ -94,15 +99,13 @@ def verify_code_login(session, headers):
cap_data = _verify(gt, challenge, token)
logger.success("验证完成")
data = {
"source": "main-fe-header",
"cid": cid,
"tel": tel,
"token": token,
"challenge": cap_data["challenge"],
"validate": cap_data["validate"],
"seccode": cap_data["seccode"] + "|jordan",
}
print(data)
# https://passport.bilibili.com/x/passport-login/web/sms/send
send = session.post(
"https://passport.bilibili.com/x/passport-login/web/sms/send",
Expand All @@ -116,9 +119,7 @@ def verify_code_login(session, headers):
logger.success("验证码发送成功")
send_token = send["data"]["captcha_key"]
while True:
code = inquirer.prompt([
inquirer.Text("code", message="请输入验证码", validate=lambda _, x: len(x) == 6 and x.isdigit())
])["code"]
code = input("请输入验证码: ")
# https://passport.bilibili.com/x/passport-login/web/login/sms
data = {"cid": cid, "tel": tel, "captcha_key": send_token, "code": code}
login = session.post(
Expand All @@ -139,12 +140,10 @@ def password_login(session, headers):
from Crypto.PublicKey import RSA

# https://passport.bilibili.com/x/passport-login/web/key
username = inquirer.prompt([
inquirer.Text("username", message="请输入用户名(通常为手机号)")
])["username"]
password = inquirer.prompt([
inquirer.Password("password", message="请输入密码")
])["password"]
username = input("请输入用户名(通常为手机号): ")
import getpass

password = getpass.getpass("请输入密码:")
captcha = session.get(
"https://passport.bilibili.com/x/passport-login/captcha", headers=headers
).json()
Expand Down Expand Up @@ -254,9 +253,7 @@ def password_login(session, headers):
logger.success("验证码发送成功")
send_token = send["data"]["captcha_key"]
while True:
code = inquirer.prompt([
inquirer.Text("code", message="请输入验证码", validate=lambda _, x: len(x) == 6 and x.isdigit())
])["code"]
code = input("请输入验证码: ")
data = {
"type": "loginTelCheck",
"tmp_code": tmp_token,
Expand Down Expand Up @@ -296,23 +293,17 @@ def interactive_login():
session = requests.session()
session.get("https://www.bilibili.com/", headers=headers)

method = inquirer.prompt([
inquirer.List(
'method',
message="请选择登录方式",
choices=['Cookie登录', '扫码登录', '用户名密码登录', '验证码登录'],
default='扫码登录',
),
])["method"]
if method == "Cookie登录":
cookie_str = inquirer.prompt([
inquirer.Text("cookie", message="请输入cookie")
])
elif method == "扫码登录":
logger.info(
"请选择登录方式\n1. cookie登录\n2. 扫码登录\n3. 用户名密码登录\n4. 验证码登录"
)
method = input("请输入数字: ")
if method == "1":
cookie_str = input("请输入cookie: ")
elif method == "2":
cookie_str = qr_login(session, headers)
elif method == "用户名密码登录":
elif method == "3":
cookie_str = password_login(session, headers)
elif method == "验证码登录":
elif method == "4":
cookie_str = verify_code_login(session, headers)
else:
logger.error("暂不支持此方式")
Expand Down
Loading

0 comments on commit 22dc5fe

Please sign in to comment.