parent
c143ca8a02
commit
8c687d20b1
@ -0,0 +1,8 @@
|
|||||||
|
from grpc_tools import protoc
|
||||||
|
|
||||||
|
protoc.main((
|
||||||
|
'',
|
||||||
|
'-I.', # Import paths
|
||||||
|
'--python_out=.', # Output directory
|
||||||
|
'message.proto', # Proto file
|
||||||
|
))
|
@ -1,47 +1,38 @@
|
|||||||
from tkinter import*
|
import requests
|
||||||
|
import message_pb2 # 导入生成的 Protobuf 文件
|
||||||
|
|
||||||
user_login ={'aaa':'123456', 'bbb':'888888', 'ccc':'333333', }
|
# 设置请求的 URL 和参数
|
||||||
|
url = "https://imapi.douyin.com/v1/message/send"
|
||||||
|
params = {
|
||||||
|
"msToken": "AoiVI_ZJ9bOmevnFussZoK-JLQjouxwc8WV1n-sMFe2PgALgCivMbdZxnCD2iKI5yNv43ITDA9DNJsiCFV4U1xtFCfzh8T4SiDVakD_4ekKnJ2XtsGYD61h4",
|
||||||
|
"a_bogus": "O7m0QDuhdifpgfyv5X9LfY3q6633Ym%2Fv0trEMD2fxdfl3g39HMT49exY3Pwvi06jLG%2FlIeyjy4hbYN9krQ%2FH0HwfHuix%2F2ohmDSkKl5Q59Dc-NineggME0hi4kb3tMrQsv1UxOfkohIaSYuplIqe5XclbfebYrtswnuYt9%2Fb5D%3D%3D",
|
||||||
|
"verifyFp": "verify_lwlm1u72_stNCFCId_qzbH_4cpL_9Iep_AqW2XPQog7ma",
|
||||||
|
"fp": "verify_lwlm1u72_stNCFCId_qzbH_4cpL_9Iep_AqW2XPQog7ma"
|
||||||
|
}
|
||||||
|
|
||||||
#定义登录次数
|
headers = {
|
||||||
count =0
|
"Cookie":"LOGIN_STATUS=1; store-region=cn-hn; store-region-src=uid; my_rd=2; __live_version__=%221.1.1.4879%22; ttwid=1%7Cj1y2rrK1xocvz8_dWNVIq9GJ1UUkc3qyI3unO5Hnz7c%7C1710497985%7C0580bd3d607011ab36c5240383d9941e485699343a9be647cab7b4e4877837e3; bd_ticket_guard_client_web_domain=2; SEARCH_RESULT_LIST_TYPE=%22single%22; passport_csrf_token=58820e3ccfd2a4c8d213c627c8bfcbf2; passport_csrf_token_default=58820e3ccfd2a4c8d213c627c8bfcbf2; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%2C%22isForcePopClose%22%3A1%7D; _bd_ticket_crypt_doamin=2; __security_server_data_status=1; download_guide=%223%2F20240525%2F1%22; volume_info=%7B%22isUserMute%22%3Afalse%2C%22isMute%22%3Atrue%2C%22volume%22%3A0.782%7D; FOLLOW_NUMBER_YELLOW_POINT_INFO=%22MS4wLjABAAAAsHY3M7WCvAd6-fwDR0tYP32MvxlSPgEfD3dF69gvt3Wg7bkb3YHFIkTg0hifLIWT%2F1717171200000%2F0%2F1717115163191%2F0%22; strategyABtestKey=%221717302723.411%22; stream_player_status_params=%22%7B%5C%22is_auto_play%5C%22%3A1%2C%5C%22is_full_screen%5C%22%3A0%2C%5C%22is_full_webscreen%5C%22%3A0%2C%5C%22is_mute%5C%22%3A1%2C%5C%22is_speed%5C%22%3A1%2C%5C%22is_visible%5C%22%3A0%7D%22; passport_assist_user=CkGTU8poo6Xij7PpTE-fUre1nhzcRBFJYHRkb7NQSNTQ9iNdua_sq5fW3SH3UswucQWWgGMnSPMP1bB1ILAbFI0CWBpKCjxGylE8zOMF-zm4w_eR6Pi_pX-ZzeDFKYIrlSqAG5E4ICB0TXX9rIwP8tdroe8GAZc1jHqmwTdNPdMWwSIQp_nSDRiJr9ZUIAEiAQN-VLfr; n_mh=eRTYt2yhIheBvqQdvgMfXadK0QnaYOp5didcMz0Ww-o; sso_uid_tt=9ed08f5e09478ad14f5c7040302e1eb9; sso_uid_tt_ss=9ed08f5e09478ad14f5c7040302e1eb9; toutiao_sso_user=f9d9c4f781e3bab9ac19a8f4a3100824; toutiao_sso_user_ss=f9d9c4f781e3bab9ac19a8f4a3100824; sid_ucp_sso_v1=1.0.0-KDkyYTIxMjA2MDJiYTc2MWVkMzg2MzZkMDViMGZmMDY2ZmE5MjA4N2IKHwjUmfCgqMzoAhDZgPKyBhjvMSAMMNmDoaEGOAZA9AcaAmxxIiBmOWQ5YzRmNzgxZTNiYWI5YWMxOWE4ZjRhMzEwMDgyNA; ssid_ucp_sso_v1=1.0.0-KDkyYTIxMjA2MDJiYTc2MWVkMzg2MzZkMDViMGZmMDY2ZmE5MjA4N2IKHwjUmfCgqMzoAhDZgPKyBhjvMSAMMNmDoaEGOAZA9AcaAmxxIiBmOWQ5YzRmNzgxZTNiYWI5YWMxOWE4ZjRhMzEwMDgyNA; passport_auth_status=d9b57afe2b5a9d46bf94fe6be3fbff5e%2Ce86684cdf98b870d7eccf74c2242c1fc; passport_auth_status_ss=d9b57afe2b5a9d46bf94fe6be3fbff5e%2Ce86684cdf98b870d7eccf74c2242c1fc; uid_tt=0f66b8fa9bc5d113e984d09b1d834684; uid_tt_ss=0f66b8fa9bc5d113e984d09b1d834684; sid_tt=d8a420e331706f83d5ca7c6ee82cd4c8; sessionid=d8a420e331706f83d5ca7c6ee82cd4c8; sessionid_ss=d8a420e331706f83d5ca7c6ee82cd4c8; publish_badge_show_info=%220%2C0%2C0%2C1717338205811%22; _bd_ticket_crypt_cookie=4dbd1a3b0950e14f64ff55ec49f90e45; FOLLOW_LIVE_POINT_INFO=%22MS4wLjABAAAAsHY3M7WCvAd6-fwDR0tYP32MvxlSPgEfD3dF69gvt3Wg7bkb3YHFIkTg0hifLIWT%2F1717344000000%2F0%2F1717338206814%2F0%22; sid_guard=d8a420e331706f83d5ca7c6ee82cd4c8%7C1717338207%7C5183997%7CThu%2C+01-Aug-2024+14%3A23%3A24+GMT; sid_ucp_v1=1.0.0-KDg2ZGFkNmFhM2M3NTkzZDg2Yjk1YjVkMTkxYjU1NWZmNjVhMThjZTYKGwjUmfCgqMzoAhDfgPKyBhjvMSAMOAZA9AdIBBoCbGYiIGQ4YTQyMGUzMzE3MDZmODNkNWNhN2M2ZWU4MmNkNGM4; ssid_ucp_v1=1.0.0-KDg2ZGFkNmFhM2M3NTkzZDg2Yjk1YjVkMTkxYjU1NWZmNjVhMThjZTYKGwjUmfCgqMzoAhDfgPKyBhjvMSAMOAZA9AdIBBoCbGYiIGQ4YTQyMGUzMzE3MDZmODNkNWNhN2M2ZWU4MmNkNGM4; stream_recommend_feed_params=%22%7B%5C%22cookie_enabled%5C%22%3Atrue%2C%5C%22screen_width%5C%22%3A1280%2C%5C%22screen_height%5C%22%3A720%2C%5C%22browser_online%5C%22%3Atrue%2C%5C%22cpu_core_num%5C%22%3A8%2C%5C%22device_memory%5C%22%3A8%2C%5C%22downlink%5C%22%3A10%2C%5C%22effective_type%5C%22%3A%5C%224g%5C%22%2C%5C%22round_trip_time%5C%22%3A100%7D%22; home_can_add_dy_2_desktop=%221%22; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCTlplYVlVb2N5Z1ZqakNXYnptL0RNN1h6OE94VWJ6ZVVETkFBWVVvRFJEMlJTSkxFRkJQOVhjazlCSzd6K0dUMzBnTlBwKzlwWnZ6a0hoQXRrWEdabUE9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoxfQ%3D%3D; pwa2=%220%7C0%7C3%7C0%22; EnhanceDownloadGuide=%220_0_0_0_1_1717338361%22; WallpaperGuide=%7B%22showTime%22%3A1717115344302%2C%22closeTime%22%3A0%2C%22showCount%22%3A2%2C%22cursor1%22%3A87%2C%22cursor2%22%3A0%2C%22hoverTime%22%3A1717256760346%7D; IsDouyinActive=true; odin_tt=0c1b76b619783e164cbdd74c05a22102308e30af152dab51f189b1296a77442258e490210ad3b456231f0da4fc18490646eb3d5336bb6c5d08e1fe173fad8245; msToken=te2BFr5x25GZ0vk_n_SwxDXxJjmSkhD2_MZUHamuw6HbQ2PEy-sPXbnV9qdYcg2mYrsjRVdFXw7z42veNMQuQ1bY5yTbaW0q1Z7QuPyXLG0fKjYnYt2VEpdB",
|
||||||
def login():
|
"Content-Type": "application/octet-stream",
|
||||||
global count
|
"Accept": "application/x-protobuf",
|
||||||
username =entry_username.get ()
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0"
|
||||||
if username not in user_login:
|
}
|
||||||
label_message.config(text='账号错误!')
|
|
||||||
else:
|
# 创建 Message 对象并填充数据
|
||||||
password =entry_password.get ()
|
message = message_pb2.Message()
|
||||||
if (password ==user_login[username]):
|
message.content = "你好,这是一条测试私信"
|
||||||
label_message.config(text='登录成功!')
|
message.account = "zy2752629612"
|
||||||
open_new_window()
|
|
||||||
else:
|
# 将 Message 对象序列化为字节
|
||||||
label_message.config(text='密码错误!还可以尝试{}次'.format (2 -coum))
|
data = message.SerializeToString()
|
||||||
count = count +1
|
print(data)
|
||||||
if count ==3:
|
print(len(data))
|
||||||
label_message.config(text='登录失败!')
|
|
||||||
btn_login.config(state="disabled")
|
# 发送请求
|
||||||
def open_new_window():
|
response = requests.post(url, headers=headers, params=params, data=data)
|
||||||
# 创建一个新窗口
|
|
||||||
new_window = Toplevel(window)
|
# 输出响应状态码和内容
|
||||||
new_window.title("登录成功")
|
print(response.status_code)
|
||||||
new_window.geometry("300x200")
|
print(response.text)
|
||||||
Label(new_window, text="欢迎进入新页面!").pack()
|
|
||||||
window =Tk()
|
print(response.headers)
|
||||||
window.title("用户登录")
|
print(response.content)
|
||||||
window.geometry("300x200")
|
|
||||||
#创建标签和输入框
|
|
||||||
label_username=Label(window, text="账号:")
|
|
||||||
label_username.pack()
|
|
||||||
entry_username =Entry (window)
|
|
||||||
entry_username.pack ()
|
|
||||||
label_password=Label (window, text="密码:")
|
|
||||||
label_password.pack ()
|
|
||||||
entry_password = Entry(window, show='*')
|
|
||||||
entry_password.pack()
|
|
||||||
#创建登录按钮和消息提示标签
|
|
||||||
btn_login =Button (window, text="登录", command=login)
|
|
||||||
btn_login.pack()
|
|
||||||
label_message = Label (window, text ="")
|
|
||||||
label_message.pack()
|
|
||||||
#运行主循环
|
|
||||||
window.mainloop ()
|
|
Binary file not shown.
@ -0,0 +1,6 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
message Message {
|
||||||
|
string content = 1;
|
||||||
|
string account = 2;
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||||
|
# source: message.proto
|
||||||
|
# Protobuf Python Version: 5.26.1
|
||||||
|
"""Generated protocol buffer code."""
|
||||||
|
from google.protobuf import descriptor as _descriptor
|
||||||
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
||||||
|
from google.protobuf import symbol_database as _symbol_database
|
||||||
|
from google.protobuf.internal import builder as _builder
|
||||||
|
# @@protoc_insertion_point(imports)
|
||||||
|
|
||||||
|
_sym_db = _symbol_database.Default()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rmessage.proto\"+\n\x07Message\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63\x63ount\x18\x02 \x01(\tb\x06proto3')
|
||||||
|
|
||||||
|
_globals = globals()
|
||||||
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||||
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'message_pb2', _globals)
|
||||||
|
if not _descriptor._USE_C_DESCRIPTORS:
|
||||||
|
DESCRIPTOR._loaded_options = None
|
||||||
|
_globals['_MESSAGE']._serialized_start=17
|
||||||
|
_globals['_MESSAGE']._serialized_end=60
|
||||||
|
# @@protoc_insertion_point(module_scope)
|
Loading…
Reference in new issue