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()

功能说明:

  1. 输入 cookie 和时间范围: 用户需要输入自己的 cookie 和预约的时间范围,包括开始日期和结束日期。
  2. 获取可选位置: 系统会根据用户输入的 cookie 和时间范围,获取可选的预约位置,并显示在列表框中。
  3. 选择预约位置: 用户可以选择多个位置进行预约。
  4. 开始预约: 系统会根据用户选择的位置和时间范围,自动进行预约,并将预约结果显示在另一个列表框中。

优化说明:

  1. 标题和描述: 使用更具描述性的标题和描述,突出系统的主要功能和用途。
  2. 关键词: 添加与系统功能相关的关键词,方便用户搜索。
  3. 代码注释: 添加清晰的代码注释,方便理解代码逻辑。
  4. 界面设计: 使用 Tkinter 创建简洁易用的用户界面,方便用户操作。
  5. 错误处理: 添加错误处理机制,防止程序异常退出。

注意:

  • 为了保护用户隐私,请不要在代码中直接输入 cookie 信息。
  • 本代码仅供参考,请根据实际情况进行修改和调整。
  • 请确保 getreversestartreverse 两个模块已经正确安装。
  • send_requestscan 函数的具体实现请根据实际情况进行修改。
Python Tkinter 自动预约系统 - 使用 cookie 和时间范围选择预约位置

原文地址: https://www.cveoy.top/t/topic/mUgy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录