Python Tkinter 自动预约系统 - 使用 cookie 和时间范围选择预约位置
import tkinter as tk
import requests
import json
from getreverse import send_request
from startreverse import scan
class App(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.create_widgets()
def create_widgets(self):
#输入cooKie
self.cookie_label = tk.Label(self, text='1.请输入cookie:')
self.cookie_label.pack(side='top', fill='x')
self.cookie_entry = tk.Entry(self)
self.cookie_entry.pack(side='top', fill='x')
self.date_label = tk.Label(self, text='2.请输入开始日期 格式为yyyy-mm-dd hh:mm:ss:')
self.date_label.pack(side='top', fill='x')
self.date_entry = tk.Entry(self)
self.date_entry.pack(side='top', fill='x')
#结束时间
self.enddate_label = tk.Label(self, text='3.请输入结束日期 格式为yyyy-mm-dd hh:mm:ss:')
self.enddate_label.pack(side='top', fill='x')
self.enddate_entry = tk.Entry(self)
self.enddate_entry.pack(side='top', fill='x')
self.ok_button = tk.Button(self, text='4.获取位置', command=self.send_date)
self.ok_button.pack(side='left')
self.devname_label = tk.Label(self, text='可选位置:')
self.devname_label.pack()
self.devname_listbox = tk.Listbox(self, selectmode='extended')
self.devname_listbox.pack()
self.start_button = tk.Button(self, text='5.开始预约', command=self.start_resv)
self.start_button.pack()
self.result_label = tk.Label(self, text='预约结果:')
self.result_label.pack()
self.result_listbox = tk.Listbox(self, selectmode='extended')
self.result_listbox.pack()
def send_date(self):
date = self.date_entry.get()
#转换为yyyymmdd
date = date.replace('-', '')
date = date.replace(' ', '')
date = date.replace(':', '')
date = date[:8]
res_json = send_request(date,self.cookie_entry.get())
if(res_json['message']=='用户未登录,请重新登录'):
self.devname_listbox.insert('end', '用户未登录,请重新登录')
devnames = [dev['devName'] for dev in res_json['data']]
devId = [dev['devId'] for dev in res_json['data']]
for i in range(len(devnames)):
self.devname_listbox.insert('end', devnames[i]+' '+devId[i])
def start_resv(self):
selected_indices = self.devname_listbox.curselection()
selected_devnames = [self.devname_listbox.get(i) for i in selected_indices]
selected_devId = [dev.split(' ')[1] for dev in selected_devnames]
#通过
result = scan(selected_devId,self.date_entry.get(),self.enddate_entry.get(),self.cookie_entry.get())
for res in result:
self.result_listbox.insert('end', res)
root = tk.Tk()
app = App(master=root)
app.mainloop()
功能说明:
- 输入 cookie 和时间范围: 用户需要输入自己的 cookie 和预约的时间范围,包括开始日期和结束日期。
- 获取可选位置: 系统会根据用户输入的 cookie 和时间范围,获取可选的预约位置,并显示在列表框中。
- 选择预约位置: 用户可以选择多个位置进行预约。
- 开始预约: 系统会根据用户选择的位置和时间范围,自动进行预约,并将预约结果显示在另一个列表框中。
优化说明:
- 标题和描述: 使用更具描述性的标题和描述,突出系统的主要功能和用途。
- 关键词: 添加与系统功能相关的关键词,方便用户搜索。
- 代码注释: 添加清晰的代码注释,方便理解代码逻辑。
- 界面设计: 使用 Tkinter 创建简洁易用的用户界面,方便用户操作。
- 错误处理: 添加错误处理机制,防止程序异常退出。
注意:
- 为了保护用户隐私,请不要在代码中直接输入 cookie 信息。
- 本代码仅供参考,请根据实际情况进行修改和调整。
- 请确保
getreverse和startreverse两个模块已经正确安装。 send_request和scan函数的具体实现请根据实际情况进行修改。
原文地址: https://www.cveoy.top/t/topic/mUgy 著作权归作者所有。请勿转载和采集!