Spaces:
Runtime error
Runtime error
Commit
·
9a48f11
1
Parent(s):
cb2e969
Update app.py
Browse files
app.py
CHANGED
@@ -7,6 +7,9 @@ from pytz import timezone
|
|
7 |
from login import catch_qr, get_uid_key
|
8 |
from nft import having_card_id_list, card_id_set_ava
|
9 |
|
|
|
|
|
|
|
10 |
sid_map = {
|
11 |
"SHN48荣耀时刻": 1,
|
12 |
"无": 2,
|
@@ -71,7 +74,8 @@ def name_get_card_id(card_id_list_dict, card_list_drop_name):
|
|
71 |
return {card_id: ""}
|
72 |
|
73 |
|
74 |
-
def login_up_nft(info, u_verify, u_id, u_key, sid, cid, ava_image):
|
|
|
75 |
if info and ava_image:
|
76 |
u_verify, u_id, u_key, sid_num, code = verify_login(info, u_verify, u_id, u_key, sid)
|
77 |
if u_verify:
|
@@ -83,40 +87,46 @@ def login_up_nft(info, u_verify, u_id, u_key, sid, cid, ava_image):
|
|
83 |
ava_image.save(bytes_object, format='PNG')
|
84 |
img_data = bytes_object.getvalue()
|
85 |
result, code = card_id_set_ava(cid, u_key, img_data)
|
86 |
-
|
87 |
tz = timezone('Asia/Shanghai')
|
88 |
now = datetime.datetime.now(tz)
|
89 |
-
print("提交完成:", now)
|
90 |
-
|
|
|
|
|
|
|
91 |
return {verify: u_verify, uid: u_id, key: u_key, code_output: code}
|
92 |
else:
|
93 |
return {verify: u_verify, uid: u_id, key: u_key, code_output: code}
|
94 |
return "请先上传头像和扫码登录"
|
95 |
|
96 |
|
97 |
-
with gr.Blocks() as
|
98 |
login_info = gr.State([])
|
99 |
card_id_list = gr.State({})
|
100 |
card_id = gr.State("")
|
101 |
verify = gr.State(False)
|
102 |
key = gr.State("")
|
103 |
uid = gr.State("")
|
104 |
-
with gr.Tab("
|
|
|
105 |
gr.Markdown("第一步:")
|
106 |
-
gr.Markdown("""获取一个最低R
|
107 |
gr.Markdown("第二步:")
|
108 |
with gr.Row():
|
109 |
with gr.Column():
|
110 |
gr.Markdown(
|
111 |
"""成功领取后,下方上传新头像,头像尽量为正方形并长宽小于1024像素,右上角画笔按钮可裁剪,
|
112 |
-
|
|
|
113 |
image_ava = gr.Image(type="pil", label="上传头像")
|
114 |
image_qr = gr.Image(type="pil", label="客户端扫码登录")
|
115 |
gr.Markdown("第三步:")
|
116 |
with gr.Row():
|
117 |
gr.Markdown(
|
118 |
"""第二步完成后,选择拥有的卡组,并等待加载出所拥有的卡,再指定底卡,务必重新选择,否则无法工作
|
119 |
-
|
|
|
|
|
120 |
with gr.Row():
|
121 |
sid_drop = gr.Dropdown(label="卡组", choices=list(sid_map.keys()), value="无")
|
122 |
card_list_drop = gr.Dropdown(label="指定已有底卡")
|
@@ -124,13 +134,29 @@ with gr.Blocks() as demo:
|
|
124 |
code_output = gr.Textbox(label="消息输出", placeholder="点击提交按钮才会提交")
|
125 |
|
126 |
with gr.Accordion("警告"):
|
127 |
-
gr.Markdown("本服务基于bilibili未公开API制作,因此稳定性无法保证,敬请谅解。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
|
129 |
image_ava.change(qr, inputs=[image_ava], outputs=[image_qr, login_info])
|
130 |
sid_drop.change(back_card_id_list, inputs=[login_info, verify, uid, key, sid_drop],
|
131 |
outputs=[card_id_list, verify, uid, key, card_list_drop, code_output])
|
132 |
card_list_drop.change(name_get_card_id, inputs=[card_id_list, card_list_drop], outputs=[card_id])
|
133 |
-
set_button.click(login_up_nft, inputs=[login_info, verify, uid, key, sid_drop, card_id, image_ava],
|
134 |
outputs=[verify, uid, key, code_output])
|
135 |
|
136 |
-
|
|
|
7 |
from login import catch_qr, get_uid_key
|
8 |
from nft import having_card_id_list, card_id_set_ava
|
9 |
|
10 |
+
GLOBAL_STATE_SUCCESS = 0
|
11 |
+
SUCCESS_UIDS = []
|
12 |
+
|
13 |
sid_map = {
|
14 |
"SHN48荣耀时刻": 1,
|
15 |
"无": 2,
|
|
|
74 |
return {card_id: ""}
|
75 |
|
76 |
|
77 |
+
def login_up_nft(info, u_verify, u_id, u_key, sid, cid, ava_image, log_into_public):
|
78 |
+
global GLOBAL_STATE_SUCCESS, SUCCESS_UIDS
|
79 |
if info and ava_image:
|
80 |
u_verify, u_id, u_key, sid_num, code = verify_login(info, u_verify, u_id, u_key, sid)
|
81 |
if u_verify:
|
|
|
87 |
ava_image.save(bytes_object, format='PNG')
|
88 |
img_data = bytes_object.getvalue()
|
89 |
result, code = card_id_set_ava(cid, u_key, img_data)
|
|
|
90 |
tz = timezone('Asia/Shanghai')
|
91 |
now = datetime.datetime.now(tz)
|
92 |
+
print("提交完成: ", now)
|
93 |
+
print("UID: " + str(u_id))
|
94 |
+
if result:
|
95 |
+
GLOBAL_STATE_SUCCESS = GLOBAL_STATE_SUCCESS + 1
|
96 |
+
SUCCESS_UIDS.append({"uid": u_id, "time": now})
|
97 |
return {verify: u_verify, uid: u_id, key: u_key, code_output: code}
|
98 |
else:
|
99 |
return {verify: u_verify, uid: u_id, key: u_key, code_output: code}
|
100 |
return "请先上传头像和扫码登录"
|
101 |
|
102 |
|
103 |
+
with gr.Blocks() as application:
|
104 |
login_info = gr.State([])
|
105 |
card_id_list = gr.State({})
|
106 |
card_id = gr.State("")
|
107 |
verify = gr.State(False)
|
108 |
key = gr.State("")
|
109 |
uid = gr.State("")
|
110 |
+
with gr.Tab("BiliBili自定义数字头像"):
|
111 |
+
gr.Markdown("自本次更新以来,已成功为用户设置 " + str(GLOBAL_STATE_SUCCESS) + " 次头像。")
|
112 |
gr.Markdown("第一步:")
|
113 |
+
gr.Markdown("""获取一个最低R级的数字周边,多关注官方活动。如果列表中没有最新的卡组,请耐心等待兼容更新。""")
|
114 |
gr.Markdown("第二步:")
|
115 |
with gr.Row():
|
116 |
with gr.Column():
|
117 |
gr.Markdown(
|
118 |
"""成功领取后,下方上传新头像,头像尽量为正方形并长宽小于1024像素,右上角画笔按钮可裁剪,
|
119 |
+
|
120 |
+
然后等待生成二维码并扫码登录进行授权(左上传头像,右扫码登录))""")
|
121 |
image_ava = gr.Image(type="pil", label="上传头像")
|
122 |
image_qr = gr.Image(type="pil", label="客户端扫码登录")
|
123 |
gr.Markdown("第三步:")
|
124 |
with gr.Row():
|
125 |
gr.Markdown(
|
126 |
"""第二步完成后,选择拥有的卡组,并等待加载出所拥有的卡,再指定底卡,务必重新选择,否则无法工作
|
127 |
+
|
128 |
+
最后点击按钮<验证并提交头像>等待完成显示结果(成功可能需要时间审核)""")
|
129 |
+
log_into_public = gr.Checkbox(label="展示UID到下方展示区", value=True)
|
130 |
with gr.Row():
|
131 |
sid_drop = gr.Dropdown(label="卡组", choices=list(sid_map.keys()), value="无")
|
132 |
card_list_drop = gr.Dropdown(label="指定已有底卡")
|
|
|
134 |
code_output = gr.Textbox(label="消息输出", placeholder="点击提交按钮才会提交")
|
135 |
|
136 |
with gr.Accordion("警告"):
|
137 |
+
gr.Markdown("""本服务基于bilibili未公开API制作,因此稳定性无法保证,敬请谅解。
|
138 |
+
|
139 |
+
使用本服务后,您的bilibili UID将在此页发布,不希望展示请勾选复选框。
|
140 |
+
|
141 |
+
本服务要求也必须登录&访问您的账号,这会导致潜在的安全问题,我们无法保证您的账号不会被盗用,但我们将竭尽全力保证您的数据和隐私安全。
|
142 |
+
|
143 |
+
建议您在使用后及时修改密码,以退出所有设备的登陆状态,防止盗号风险。
|
144 |
+
|
145 |
+
本服务由方糖网络科技开发。""")
|
146 |
+
|
147 |
+
with gr.Accordion("用户展示"):
|
148 |
+
text = ""
|
149 |
+
for u in SUCCESS_UIDS:
|
150 |
+
text = text + "UID: " + u["uid"] + " 于 " + u["time"] + " 成功设置数字头像。" + "\n\n"
|
151 |
+
if text == "":
|
152 |
+
text = "好像从本次更新起还没有人设置数字头像呢~"
|
153 |
+
gr.Markdown(text)
|
154 |
|
155 |
image_ava.change(qr, inputs=[image_ava], outputs=[image_qr, login_info])
|
156 |
sid_drop.change(back_card_id_list, inputs=[login_info, verify, uid, key, sid_drop],
|
157 |
outputs=[card_id_list, verify, uid, key, card_list_drop, code_output])
|
158 |
card_list_drop.change(name_get_card_id, inputs=[card_id_list, card_list_drop], outputs=[card_id])
|
159 |
+
set_button.click(login_up_nft, inputs=[login_info, verify, uid, key, sid_drop, card_id, image_ava, log_into_public],
|
160 |
outputs=[verify, uid, key, code_output])
|
161 |
|
162 |
+
application.launch()
|